{
  "metadata": {
    "batch_id": "batch_003",
    "purpose": "control_review_evidence_non_final",
    "generated_at": "2026-07-17T10:27:33Z",
    "source_batch": "hybrid/reviews/manual_replay_batch_003.json",
    "source_batch_sha16": "5bccb5d6bd5229e4",
    "source_reviews": "hybrid/reviews/reviews.json",
    "source_reviews_sha16": "2a4ba0dced3f47a8",
    "item_count": 25,
    "breakdown": {
      "needs_more_context": 20,
      "rejected": 5
    },
    "isFinalBacktest": false,
    "journal_promotions": 0,
    "safety": "analysis_only; no trading/live order; no journal promotion; batch files untouched",
    "notes": "Control evidence file only. Use for chronological manual replay decisions; do not count as confirmed trades."
  },
  "items": [
    {
      "order": 833,
      "candidate_id": "candidate_2026-01-05T08-00-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T08:00:00Z",
      "direction": "Long",
      "input_status": "needs_more_context",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "fib_entry_found_but_htf_context_insufficient",
        "candidate_time": "2026-01-05T08:00:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-05T08:15:00Z",
        "fib_touch_time": "2026-01-05T08:30:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 4.752,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Fib 50/62 entry condition found, but HTF narrative must be manually checked before acceptance."
      },
      "journal_promotion": false
    },
    {
      "order": 834,
      "candidate_id": "candidate_2026-01-05T08-00-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T08:00:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "rejected",
      "classification": "not_enough_confirmation",
      "rationale": "Control classification: insufficient M15/M5 confirmation or no M5 structure confirmation within allowed window; not eligible for journal.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "no_structure_confirmation_within_3h",
        "candidate_time": "2026-01-05T08:00:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": null,
        "fib_touch_time": null,
        "invalid_before_fib_touch": null,
        "mechanical_outcome": null,
        "risk_points": null,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. No M5 close beyond local structure within 3h after sweep."
      },
      "journal_promotion": false
    },
    {
      "order": 835,
      "candidate_id": "candidate_2026-01-05T10-30-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T10:30:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "fib_entry_found_but_htf_context_insufficient",
        "candidate_time": "2026-01-05T10:30:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-05T11:25:00Z",
        "fib_touch_time": "2026-01-05T11:45:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 12.536,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Fib 50/62 entry condition found, but HTF narrative must be manually checked before acceptance."
      },
      "journal_promotion": false
    },
    {
      "order": 836,
      "candidate_id": "candidate_2026-01-05T15-30-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T15:30:00Z",
      "direction": "Long",
      "input_status": "needs_more_context",
      "control_status": "rejected",
      "classification": "not_enough_confirmation",
      "rationale": "Control classification: insufficient M15/M5 confirmation or no M5 structure confirmation within allowed window; not eligible for journal.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "no_structure_confirmation_within_3h",
        "candidate_time": "2026-01-05T15:30:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": null,
        "fib_touch_time": null,
        "invalid_before_fib_touch": null,
        "mechanical_outcome": null,
        "risk_points": null,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. No M5 close beyond local structure within 3h after sweep."
      },
      "journal_promotion": false
    },
    {
      "order": 837,
      "candidate_id": "candidate_2026-01-05T16-00-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T16:00:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "rejected",
      "classification": "not_enough_confirmation",
      "rationale": "Control classification: insufficient M15/M5 confirmation or no M5 structure confirmation within allowed window; not eligible for journal.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "no_structure_confirmation_within_3h",
        "candidate_time": "2026-01-05T16:00:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": null,
        "fib_touch_time": null,
        "invalid_before_fib_touch": null,
        "mechanical_outcome": null,
        "risk_points": null,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. No M5 close beyond local structure within 3h after sweep."
      },
      "journal_promotion": false
    },
    {
      "order": 838,
      "candidate_id": "candidate_2026-01-05T18-15-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T18:15:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "rejected",
      "classification": "not_enough_confirmation",
      "rationale": "Control classification: insufficient M15/M5 confirmation or no M5 structure confirmation within allowed window; not eligible for journal.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "no_structure_confirmation_within_3h",
        "candidate_time": "2026-01-05T18:15:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": null,
        "fib_touch_time": null,
        "invalid_before_fib_touch": null,
        "mechanical_outcome": null,
        "risk_points": null,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. No M5 close beyond local structure within 3h after sweep."
      },
      "journal_promotion": false
    },
    {
      "order": 839,
      "candidate_id": "candidate_2026-01-05T19-00-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T19:00:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "fib_entry_found_but_htf_context_insufficient",
        "candidate_time": "2026-01-05T19:00:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-05T19:05:00Z",
        "fib_touch_time": "2026-01-05T19:25:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 6.151,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Fib 50/62 entry condition found, but HTF narrative must be manually checked before acceptance."
      },
      "journal_promotion": false
    },
    {
      "order": 840,
      "candidate_id": "candidate_2026-01-05T20-45-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-05T20:45:00Z",
      "direction": "Short",
      "input_status": "needs_more_context",
      "control_status": "rejected",
      "classification": "not_enough_confirmation",
      "rationale": "Control classification: insufficient M15/M5 confirmation or no M5 structure confirmation within allowed window; not eligible for journal.",
      "evidence": {
        "deterministic_status": "needs_more_context",
        "deterministic_outcome": "no_structure_confirmation_within_3h",
        "candidate_time": "2026-01-05T20:45:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": null,
        "fib_touch_time": null,
        "invalid_before_fib_touch": null,
        "mechanical_outcome": null,
        "risk_points": null,
        "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. No M5 close beyond local structure within 3h after sweep."
      },
      "journal_promotion": false
    },
    {
      "order": 1,
      "candidate_id": "candidate_2026-01-06T00-30-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T00:30:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T00:30:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T00:35:00Z",
        "fib_touch_time": "2026-01-06T01:00:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 4.873,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 2,
      "candidate_id": "candidate_2026-01-06T04-15-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T04:15:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T04:15:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T05:00:00Z",
        "fib_touch_time": "2026-01-06T05:35:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 2.812,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 3,
      "candidate_id": "candidate_2026-01-06T13-30-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T13:30:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T13:30:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T14:05:00Z",
        "fib_touch_time": "2026-01-06T15:35:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 7.498,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 4,
      "candidate_id": "candidate_2026-01-06T17-00-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T17:00:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T17:00:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T17:50:00Z",
        "fib_touch_time": "2026-01-06T18:00:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 2.768,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 5,
      "candidate_id": "candidate_2026-01-06T18-15-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T18:15:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T18:15:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T19:25:00Z",
        "fib_touch_time": "2026-01-06T20:20:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 5.903,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 6,
      "candidate_id": "candidate_2026-01-06T20-30-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T20:30:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T20:30:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T20:55:00Z",
        "fib_touch_time": "2026-01-07T00:15:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 5.716,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 7,
      "candidate_id": "candidate_2026-01-06T21-45-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-06T21:45:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-06T21:45:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-06T23:00:00Z",
        "fib_touch_time": "2026-01-06T23:10:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 2.046,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 8,
      "candidate_id": "candidate_2026-01-07T03-00-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T03:00:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T03:00:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T03:15:00Z",
        "fib_touch_time": "2026-01-07T03:30:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 3.815,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 9,
      "candidate_id": "candidate_2026-01-07T06-45-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T06:45:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T06:45:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T08:35:00Z",
        "fib_touch_time": "2026-01-07T11:25:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 13.741,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 10,
      "candidate_id": "candidate_2026-01-07T10-15-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T10:15:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T10:15:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T11:25:00Z",
        "fib_touch_time": "2026-01-07T16:20:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 5.086,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 11,
      "candidate_id": "candidate_2026-01-07T10-45-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T10:45:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T10:45:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T11:30:00Z",
        "fib_touch_time": "2026-01-07T16:30:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 5.68,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 12,
      "candidate_id": "candidate_2026-01-07T14-00-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T14:00:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T14:00:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T15:10:00Z",
        "fib_touch_time": "2026-01-07T15:25:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 12.28,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 13,
      "candidate_id": "candidate_2026-01-07T14-30-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T14:30:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T14:30:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T16:20:00Z",
        "fib_touch_time": "2026-01-07T18:00:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 11.169,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 14,
      "candidate_id": "candidate_2026-01-07T14-45-00Z_short_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T14:45:00Z",
      "direction": "Short",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T14:45:00Z",
        "direction": "Short",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T15:10:00Z",
        "fib_touch_time": "2026-01-07T15:25:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 11.678,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 15,
      "candidate_id": "candidate_2026-01-07T15-45-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T15:45:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T15:45:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T16:20:00Z",
        "fib_touch_time": "2026-01-07T17:55:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 9.115,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 16,
      "candidate_id": "candidate_2026-01-07T21-00-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T21:00:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T21:00:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-07T23:00:00Z",
        "fib_touch_time": "2026-01-08T00:25:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_sl_first",
        "risk_points": 5.383,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    },
    {
      "order": 17,
      "candidate_id": "candidate_2026-01-07T23-45-00Z_long_liquidity_sweep_reversal",
      "timestamp": "2026-01-07T23:45:00Z",
      "direction": "Long",
      "input_status": "needs_manual_replay",
      "control_status": "needs_more_context",
      "classification": "requires_htf_manual_replay",
      "rationale": "Control classification: deterministic triage needs HTF context/manual TradingView replay before accept/reject; do not promote.",
      "evidence": {
        "deterministic_status": "needs_manual_replay",
        "deterministic_outcome": "mechanical_fib_entry_candidate",
        "candidate_time": "2026-01-07T23:45:00Z",
        "direction": "Long",
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "confirmation_time": "2026-01-08T00:00:00Z",
        "fib_touch_time": "2026-01-08T00:05:00Z",
        "invalid_before_fib_touch": false,
        "mechanical_outcome": "mechanical_tp1_first",
        "risk_points": 2.765,
        "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion."
      },
      "journal_promotion": false
    }
  ]
}
