{
  "metadata": {
    "symbol": "XAUUSD",
    "mode": "deterministic_triage_reviews",
    "source_candidates": "candidates/candidates.json",
    "generated_at": "2026-07-17T09:34:44Z",
    "review_count": 6280,
    "isFinalBacktest": false,
    "notes": "Mechanical triage only. No confirmed journal trades are created by this script."
  },
  "reviews": [
    {
      "candidate_id": "candidate_2026-01-02T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4351.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4354.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4345.88,
        "D_prior_index": 0,
        "H4_prior_index": 1,
        "H1_prior_index": 3,
        "pre_local_high": 4355.885,
        "confirmation_time": "2026-01-02T02:50:00Z",
        "impulse_extreme": 4359.89,
        "fib50": 4352.885,
        "fib62": 4351.204,
        "entry_mid": 4352.044,
        "invalid": 4345.88,
        "risk_points": 6.164,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4345.32,
        "D_prior_index": 0,
        "H4_prior_index": 1,
        "H1_prior_index": 3,
        "pre_local_high": 4355.885,
        "confirmation_time": "2026-01-02T02:50:00Z",
        "impulse_extreme": 4359.89,
        "fib50": 4352.605,
        "fib62": 4350.857,
        "entry_mid": 4351.731,
        "invalid": 4345.32,
        "risk_points": 6.411,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4378.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4371.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4375.97,
        "D_prior_index": 0,
        "H4_prior_index": 1,
        "H1_prior_index": 5,
        "pre_local_low": 4364.005
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4371.11,
        "D_prior_index": 0,
        "H4_prior_index": 1,
        "H1_prior_index": 6,
        "pre_local_high": 4378.665,
        "confirmation_time": "2026-01-02T05:25:00Z",
        "impulse_extreme": 4378.95,
        "fib50": 4375.03,
        "fib62": 4374.089,
        "entry_mid": 4374.56,
        "invalid": 4371.11,
        "risk_points": 3.45,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T06:05:00Z",
        "target1": 4378.009,
        "target2": 4381.459,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4373.67,
        "D_prior_index": 0,
        "H4_prior_index": 2,
        "H1_prior_index": 7,
        "pre_local_high": 4381.975,
        "confirmation_time": "2026-01-02T07:55:00Z",
        "impulse_extreme": 4383.58,
        "fib50": 4378.625,
        "fib62": 4377.436,
        "entry_mid": 4378.03,
        "invalid": 4373.67,
        "risk_points": 4.36,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4373.325,
        "D_prior_index": 0,
        "H4_prior_index": 2,
        "H1_prior_index": 7,
        "pre_local_high": 4381.975,
        "confirmation_time": "2026-01-02T07:55:00Z",
        "impulse_extreme": 4383.58,
        "fib50": 4378.452,
        "fib62": 4377.222,
        "entry_mid": 4377.837,
        "invalid": 4373.325,
        "risk_points": 4.512,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": -1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4372.485,
        "D_prior_index": 0,
        "H4_prior_index": 2,
        "H1_prior_index": 8,
        "pre_local_high": 4381.975,
        "confirmation_time": "2026-01-02T07:55:00Z",
        "impulse_extreme": 4383.58,
        "fib50": 4378.032,
        "fib62": 4376.701,
        "entry_mid": 4377.367,
        "invalid": 4372.485,
        "risk_points": 4.882,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T13:25:00Z",
        "target1": 4382.249,
        "target2": 4387.13,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4372.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4380.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4397.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4386.105,
        "D_prior_index": 0,
        "H4_prior_index": 2,
        "H1_prior_index": 10,
        "pre_local_high": 4397.835,
        "confirmation_time": "2026-01-02T11:20:00Z",
        "impulse_extreme": 4398.325,
        "fib50": 4392.215,
        "fib62": 4390.749,
        "entry_mid": 4391.482,
        "invalid": 4386.105,
        "risk_points": 5.377,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T11:30:00Z",
        "target1": 4396.859,
        "target2": 4402.235,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4383.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4391.715,
        "D_prior_index": 0,
        "H4_prior_index": 2,
        "H1_prior_index": 10,
        "pre_local_low": 4375.465
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4384.7,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 11,
        "pre_local_high": 4397.835,
        "confirmation_time": "2026-01-02T11:20:00Z",
        "impulse_extreme": 4398.325,
        "fib50": 4391.512,
        "fib62": 4389.877,
        "entry_mid": 4390.695,
        "invalid": 4384.7,
        "risk_points": 5.995,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T11:50:00Z",
        "target1": 4396.69,
        "target2": 4402.685,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4390.04,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 11,
        "pre_local_low": 4383.405
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4384.745,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 11,
        "pre_local_high": 4395.945,
        "confirmation_time": "2026-01-02T10:50:00Z",
        "impulse_extreme": 4398.61,
        "fib50": 4391.677,
        "fib62": 4390.014,
        "entry_mid": 4390.846,
        "invalid": 4384.745,
        "risk_points": 6.101,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T11:50:00Z",
        "target1": 4396.946,
        "target2": 4403.047,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4398.615,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 11,
        "pre_local_low": 4383.405,
        "confirmation_time": "2026-01-02T13:20:00Z",
        "impulse_extreme": 4379.64,
        "fib50": 4389.128,
        "fib62": 4391.404,
        "entry_mid": 4390.266,
        "invalid": 4398.615,
        "risk_points": 8.349,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4399.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4391.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4390.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4397.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4398.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4394.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4402.295,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 14,
        "pre_local_low": 4385.25,
        "confirmation_time": "2026-01-02T13:20:00Z",
        "impulse_extreme": 4379.64,
        "fib50": 4390.968,
        "fib62": 4393.686,
        "entry_mid": 4392.327,
        "invalid": 4402.295,
        "risk_points": 9.968,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4362.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4377.855,
        "D_prior_index": 0,
        "H4_prior_index": 3,
        "H1_prior_index": 14,
        "pre_local_low": 4365.95,
        "confirmation_time": "2026-01-02T14:30:00Z",
        "impulse_extreme": 4354.79,
        "fib50": 4366.323,
        "fib62": 4369.09,
        "entry_mid": 4367.706,
        "invalid": 4377.855,
        "risk_points": 10.149,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4373.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4330.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4347.34,
        "D_prior_index": 0,
        "H4_prior_index": 4,
        "H1_prior_index": 16,
        "pre_local_low": 4330.475,
        "confirmation_time": "2026-01-02T16:00:00Z",
        "impulse_extreme": 4324.38,
        "fib50": 4335.86,
        "fib62": 4338.615,
        "entry_mid": 4337.238,
        "invalid": 4347.34,
        "risk_points": 10.102,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4315.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-02T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4328.4,
        "D_prior_index": 0,
        "H4_prior_index": 4,
        "H1_prior_index": 17,
        "pre_local_low": 4315.195,
        "confirmation_time": "2026-01-02T18:10:00Z",
        "impulse_extreme": 4312.465,
        "fib50": 4320.432,
        "fib62": 4322.345,
        "entry_mid": 4321.389,
        "invalid": 4328.4,
        "risk_points": 7.011,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-02T18:25:00Z",
        "target1": 4314.377,
        "target2": 4307.366,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4323.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4310.915,
        "D_prior_index": 0,
        "H4_prior_index": 5,
        "H1_prior_index": 19,
        "pre_local_high": 4333.415
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T18:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4309.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4323.405,
        "D_prior_index": 0,
        "H4_prior_index": 5,
        "H1_prior_index": 20,
        "pre_local_low": 4309.915
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4326.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-02T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4317.38,
        "D_prior_index": 0,
        "H4_prior_index": 5,
        "H1_prior_index": 21,
        "pre_local_high": 4326.355,
        "confirmation_time": "2026-01-02T20:20:00Z",
        "impulse_extreme": 4326.59,
        "fib50": 4321.985,
        "fib62": 4320.88,
        "entry_mid": 4321.432,
        "invalid": 4317.38,
        "risk_points": 4.052,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-02T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.02,
        "D_prior_index": 0,
        "H4_prior_index": 5,
        "H1_prior_index": 22,
        "pre_local_low": 4316.465
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4327.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-02T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-02T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4330.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-04T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-04T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4372.61,
        "D_prior_index": 1,
        "H4_prior_index": 6,
        "H1_prior_index": 23,
        "pre_local_low": 4326.28
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-04T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-04T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4354.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4396.71,
        "D_prior_index": 1,
        "H4_prior_index": 6,
        "H1_prior_index": 24,
        "pre_local_low": 4330.48
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-05T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4384.905,
        "D_prior_index": 1,
        "H4_prior_index": 6,
        "H1_prior_index": 24,
        "pre_local_high": 4396.71,
        "confirmation_time": "2026-01-05T01:00:00Z",
        "impulse_extreme": 4417.35,
        "fib50": 4401.128,
        "fib62": 4397.234,
        "entry_mid": 4399.181,
        "invalid": 4384.905,
        "risk_points": 14.276,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-05T01:10:00Z",
        "target1": 4413.457,
        "target2": 4427.732,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4394.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4392.97,
        "D_prior_index": 1,
        "H4_prior_index": 6,
        "H1_prior_index": 25,
        "pre_local_high": 4421.605
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4405.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4391.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4407.17,
        "D_prior_index": 1,
        "H4_prior_index": 6,
        "H1_prior_index": 25,
        "pre_local_low": 4370.425
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4388.575,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 26,
        "pre_local_high": 4421.605
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4407.07,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 26,
        "pre_local_low": 4388.575
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4398.76,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 26,
        "pre_local_high": 4421.605
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4409.505,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 26,
        "pre_local_low": 4388.575
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4403.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-05T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4397.25,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 28,
        "pre_local_high": 4414.165,
        "confirmation_time": "2026-01-05T06:05:00Z",
        "impulse_extreme": 4415.6,
        "fib50": 4406.425,
        "fib62": 4404.223,
        "entry_mid": 4405.324,
        "invalid": 4397.25,
        "risk_points": 8.074,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4407.785,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 28,
        "pre_local_low": 4397.25
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4408.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4409.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4414.705,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 29,
        "pre_local_low": 4397.25
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-05T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4401.035,
        "D_prior_index": 1,
        "H4_prior_index": 7,
        "H1_prior_index": 29,
        "pre_local_high": 4414.705,
        "confirmation_time": "2026-01-05T06:05:00Z",
        "impulse_extreme": 4415.6,
        "fib50": 4408.318,
        "fib62": 4406.57,
        "entry_mid": 4407.444,
        "invalid": 4401.035,
        "risk_points": 6.409,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4426.52,
        "D_prior_index": 1,
        "H4_prior_index": 8,
        "H1_prior_index": 30,
        "pre_local_low": 4401.035
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4416.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4424.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-05T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4418.57,
        "D_prior_index": 1,
        "H4_prior_index": 8,
        "H1_prior_index": 31,
        "pre_local_high": 4426.52,
        "confirmation_time": "2026-01-05T08:15:00Z",
        "impulse_extreme": 4430.11,
        "fib50": 4424.34,
        "fib62": 4422.955,
        "entry_mid": 4423.648,
        "invalid": 4418.57,
        "risk_points": 5.078,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-05T08:30:00Z",
        "target1": 4428.725,
        "target2": 4433.803,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-05T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4419.31,
        "D_prior_index": 1,
        "H4_prior_index": 8,
        "H1_prior_index": 32,
        "pre_local_high": 4426.52,
        "confirmation_time": "2026-01-05T08:15:00Z",
        "impulse_extreme": 4430.11,
        "fib50": 4424.71,
        "fib62": 4423.414,
        "entry_mid": 4424.062,
        "invalid": 4419.31,
        "risk_points": 4.752,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-05T08:30:00Z",
        "target1": 4428.814,
        "target2": 4433.566,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4425.23,
        "D_prior_index": 1,
        "H4_prior_index": 8,
        "H1_prior_index": 32,
        "pre_local_low": 4416.31
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4423.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4434.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4426.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": 1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-05T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4439.295,
        "D_prior_index": 1,
        "H4_prior_index": 9,
        "H1_prior_index": 34,
        "pre_local_low": 4426.17,
        "confirmation_time": "2026-01-05T11:25:00Z",
        "impulse_extreme": 4410.805,
        "fib50": 4425.05,
        "fib62": 4428.469,
        "entry_mid": 4426.759,
        "invalid": 4439.295,
        "risk_points": 12.536,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-05T11:45:00Z",
        "target1": 4414.224,
        "target2": 4401.688,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4440.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4426.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4405.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4418.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-05T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4396.485,
        "D_prior_index": 1,
        "H4_prior_index": 9,
        "H1_prior_index": 37,
        "pre_local_high": 4426.135,
        "confirmation_time": "2026-01-05T14:10:00Z",
        "impulse_extreme": 4428.595,
        "fib50": 4412.54,
        "fib62": 4408.687,
        "entry_mid": 4410.613,
        "invalid": 4396.485,
        "risk_points": 14.128,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4414.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4429.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-05T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4417.785,
        "D_prior_index": 1,
        "H4_prior_index": 10,
        "H1_prior_index": 38,
        "pre_local_high": 4429.82,
        "confirmation_time": "2026-01-05T14:45:00Z",
        "impulse_extreme": 4438.685,
        "fib50": 4428.235,
        "fib62": 4425.727,
        "entry_mid": 4426.981,
        "invalid": 4417.785,
        "risk_points": 9.196,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4430.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.56,
        "D_prior_index": 1,
        "H4_prior_index": 10,
        "H1_prior_index": 39,
        "pre_local_high": 4455.77
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4438.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4451.49,
        "D_prior_index": 1,
        "H4_prior_index": 10,
        "H1_prior_index": 40,
        "pre_local_low": 4417.785
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4454.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4432.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T18:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.59,
        "D_prior_index": 1,
        "H4_prior_index": 11,
        "H1_prior_index": 42,
        "pre_local_low": 4432.535
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "fib_entry_found_but_htf_context_insufficient",
      "r": -1.0,
      "journal_trade_id": null,
      "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.",
      "metrics": {
        "candidate_time": "2026-01-05T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.45,
        "D_prior_index": 1,
        "H4_prior_index": 11,
        "H1_prior_index": 43,
        "pre_local_low": 4437.835,
        "confirmation_time": "2026-01-05T19:05:00Z",
        "impulse_extreme": 4435.47,
        "fib50": 4442.46,
        "fib62": 4444.138,
        "entry_mid": 4443.299,
        "invalid": 4449.45,
        "risk_points": 6.151,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-05T19:25:00Z",
        "target1": 4437.148,
        "target2": 4430.996,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4445.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4445.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_more_context",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": 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.",
      "metrics": {
        "candidate_time": "2026-01-05T20:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4445.935,
        "D_prior_index": 1,
        "H4_prior_index": 11,
        "H1_prior_index": 44,
        "pre_local_low": 4434.855
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "HTF context insufficient for confirmed trade; early dataset or not enough D/H4/H1 history. Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-05T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4445.28,
        "D_prior_index": 1,
        "H4_prior_index": 11,
        "H1_prior_index": 45,
        "pre_local_high": 4448.885,
        "confirmation_time": "2026-01-05T21:55:00Z",
        "impulse_extreme": 4449.54,
        "fib50": 4447.41,
        "fib62": 4446.899,
        "entry_mid": 4447.154,
        "invalid": 4445.28,
        "risk_points": 1.874,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-05T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-05T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-06T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4436.425,
        "D_prior_index": 2,
        "H4_prior_index": 12,
        "H1_prior_index": 47,
        "pre_local_high": 4460.285,
        "confirmation_time": "2026-01-06T02:25:00Z",
        "impulse_extreme": 4460.89,
        "fib50": 4448.658,
        "fib62": 4445.722,
        "entry_mid": 4447.19,
        "invalid": 4436.425,
        "risk_points": 10.765,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4442.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.77,
        "D_prior_index": 2,
        "H4_prior_index": 12,
        "H1_prior_index": 47,
        "pre_local_low": 4436.17,
        "confirmation_time": "2026-01-06T00:35:00Z",
        "impulse_extreme": 4433.695,
        "fib50": 4439.233,
        "fib62": 4440.561,
        "entry_mid": 4439.897,
        "invalid": 4444.77,
        "risk_points": 4.873,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T01:00:00Z",
        "target1": 4435.024,
        "target2": 4430.151,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4427.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.48,
        "D_prior_index": 2,
        "H4_prior_index": 12,
        "H1_prior_index": 48,
        "pre_local_low": 4427.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-06T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4432.905,
        "D_prior_index": 2,
        "H4_prior_index": 12,
        "H1_prior_index": 48,
        "pre_local_high": 4444.77,
        "confirmation_time": "2026-01-06T01:50:00Z",
        "impulse_extreme": 4448.525,
        "fib50": 4440.715,
        "fib62": 4438.841,
        "entry_mid": 4439.778,
        "invalid": 4432.905,
        "risk_points": 6.873,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4460.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T02:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.385,
        "D_prior_index": 2,
        "H4_prior_index": 13,
        "H1_prior_index": 49,
        "pre_local_low": 4427.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.16,
        "D_prior_index": 2,
        "H4_prior_index": 13,
        "H1_prior_index": 50,
        "pre_local_low": 4434.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.27,
        "D_prior_index": 2,
        "H4_prior_index": 13,
        "H1_prior_index": 50,
        "pre_local_low": 4448.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4468.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4463.395,
        "D_prior_index": 2,
        "H4_prior_index": 13,
        "H1_prior_index": 51,
        "pre_local_high": 4468.655,
        "confirmation_time": "2026-01-06T05:00:00Z",
        "impulse_extreme": 4469.785,
        "fib50": 4466.59,
        "fib62": 4465.823,
        "entry_mid": 4466.207,
        "invalid": 4463.395,
        "risk_points": 2.812,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T05:35:00Z",
        "target1": 4469.018,
        "target2": 4471.83,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4469.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-06T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4466.805,
        "D_prior_index": 2,
        "H4_prior_index": 13,
        "H1_prior_index": 52,
        "pre_local_high": 4469.945,
        "confirmation_time": "2026-01-06T05:25:00Z",
        "impulse_extreme": 4470.815,
        "fib50": 4468.81,
        "fib62": 4468.329,
        "entry_mid": 4468.569,
        "invalid": 4466.805,
        "risk_points": 1.764,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4452.18,
        "D_prior_index": 2,
        "H4_prior_index": 14,
        "H1_prior_index": 56,
        "pre_local_high": 4475.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4442.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4452.77,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 57,
        "pre_local_low": 4442.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.52,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 57,
        "pre_local_high": 4469.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T11:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4464.85,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 59,
        "pre_local_low": 4448.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4465.88,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 59,
        "pre_local_low": 4448.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4466.565,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 59,
        "pre_local_low": 4448.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4470.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4455.67,
        "D_prior_index": 2,
        "H4_prior_index": 15,
        "H1_prior_index": 60,
        "pre_local_high": 4470.63,
        "confirmation_time": "2026-01-06T14:05:00Z",
        "impulse_extreme": 4472.71,
        "fib50": 4464.19,
        "fib62": 4462.145,
        "entry_mid": 4463.168,
        "invalid": 4455.67,
        "risk_points": 7.498,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T15:35:00Z",
        "target1": 4470.665,
        "target2": 4478.163,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4453.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T14:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4464.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T14:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4473.355,
        "D_prior_index": 2,
        "H4_prior_index": 16,
        "H1_prior_index": 61,
        "pre_local_low": 4453.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4491.205,
        "D_prior_index": 2,
        "H4_prior_index": 16,
        "H1_prior_index": 62,
        "pre_local_low": 4453.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4463.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4471.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.235,
        "D_prior_index": 2,
        "H4_prior_index": 16,
        "H1_prior_index": 63,
        "pre_local_low": 4463.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4484.295,
        "D_prior_index": 2,
        "H4_prior_index": 16,
        "H1_prior_index": 64,
        "pre_local_high": 4489.54,
        "confirmation_time": "2026-01-06T17:50:00Z",
        "impulse_extreme": 4490.585,
        "fib50": 4487.44,
        "fib62": 4486.685,
        "entry_mid": 4487.063,
        "invalid": 4484.295,
        "risk_points": 2.768,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T18:00:00Z",
        "target1": 4489.83,
        "target2": 4492.598,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.415,
        "D_prior_index": 2,
        "H4_prior_index": 16,
        "H1_prior_index": 64,
        "pre_local_low": 4463.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T17:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4491.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4491.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T18:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4494.165,
        "D_prior_index": 2,
        "H4_prior_index": 17,
        "H1_prior_index": 65,
        "pre_local_low": 4481.76,
        "confirmation_time": "2026-01-06T19:25:00Z",
        "impulse_extreme": 4480.75,
        "fib50": 4487.458,
        "fib62": 4489.067,
        "entry_mid": 4488.262,
        "invalid": 4494.165,
        "risk_points": 5.903,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T20:20:00Z",
        "target1": 4482.36,
        "target2": 4476.457,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4482.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-06T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.81,
        "D_prior_index": 2,
        "H4_prior_index": 17,
        "H1_prior_index": 66,
        "pre_local_low": 4477.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4487.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T20:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.88,
        "D_prior_index": 2,
        "H4_prior_index": 17,
        "H1_prior_index": 67,
        "pre_local_high": 4490.53,
        "confirmation_time": "2026-01-06T20:55:00Z",
        "impulse_extreme": 4496.87,
        "fib50": 4490.375,
        "fib62": 4488.816,
        "entry_mid": 4489.596,
        "invalid": 4483.88,
        "risk_points": 5.716,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T00:15:00Z",
        "target1": 4495.311,
        "target2": 4501.027,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4494.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-06T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.915,
        "D_prior_index": 2,
        "H4_prior_index": 17,
        "H1_prior_index": 68,
        "pre_local_high": 4497.31,
        "confirmation_time": "2026-01-06T23:00:00Z",
        "impulse_extreme": 4498.565,
        "fib50": 4496.24,
        "fib62": 4495.682,
        "entry_mid": 4495.961,
        "invalid": 4493.915,
        "risk_points": 2.046,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-06T23:10:00Z",
        "target1": 4498.007,
        "target2": 4500.053,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-06T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4497.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-06T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-06T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4500.56,
        "D_prior_index": 3,
        "H4_prior_index": 18,
        "H1_prior_index": 69,
        "pre_local_low": 4484.125,
        "confirmation_time": "2026-01-07T01:00:00Z",
        "impulse_extreme": 4480.325,
        "fib50": 4490.443,
        "fib62": 4492.871,
        "entry_mid": 4491.657,
        "invalid": 4500.56,
        "risk_points": 8.903,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.4,
        "D_prior_index": 3,
        "H4_prior_index": 18,
        "H1_prior_index": 70,
        "pre_local_high": 4500.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4489.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4487.985,
        "D_prior_index": 3,
        "H4_prior_index": 18,
        "H1_prior_index": 70,
        "pre_local_high": 4500.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4494.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4482.36,
        "D_prior_index": 3,
        "H4_prior_index": 18,
        "H1_prior_index": 70,
        "pre_local_high": 4500.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-07T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4496.115,
        "D_prior_index": 3,
        "H4_prior_index": 18,
        "H1_prior_index": 71,
        "pre_local_low": 4480.325,
        "confirmation_time": "2026-01-07T01:05:00Z",
        "impulse_extreme": 4471.885,
        "fib50": 4484.0,
        "fib62": 4486.908,
        "entry_mid": 4485.454,
        "invalid": 4496.115,
        "risk_points": 10.661,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4460.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4459.71,
        "D_prior_index": 3,
        "H4_prior_index": 19,
        "H1_prior_index": 72,
        "pre_local_high": 4496.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4471.85,
        "D_prior_index": 3,
        "H4_prior_index": 19,
        "H1_prior_index": 73,
        "pre_local_high": 4479.115,
        "confirmation_time": "2026-01-07T03:15:00Z",
        "impulse_extreme": 4480.52,
        "fib50": 4476.185,
        "fib62": 4475.145,
        "entry_mid": 4475.665,
        "invalid": 4471.85,
        "risk_points": 3.815,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T03:30:00Z",
        "target1": 4479.48,
        "target2": 4483.294,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4480.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.975,
        "D_prior_index": 3,
        "H4_prior_index": 19,
        "H1_prior_index": 75,
        "pre_local_high": 4480.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4452.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4460.415,
        "D_prior_index": 3,
        "H4_prior_index": 20,
        "H1_prior_index": 76,
        "pre_local_low": 4443.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4441.445,
        "D_prior_index": 3,
        "H4_prior_index": 20,
        "H1_prior_index": 76,
        "pre_local_high": 4470.55,
        "confirmation_time": "2026-01-07T08:35:00Z",
        "impulse_extreme": 4472.675,
        "fib50": 4457.06,
        "fib62": 4453.312,
        "entry_mid": 4455.186,
        "invalid": 4441.445,
        "risk_points": 13.741,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T11:25:00Z",
        "target1": 4468.927,
        "target2": 4482.669,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4451.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.86,
        "D_prior_index": 3,
        "H4_prior_index": 20,
        "H1_prior_index": 78,
        "pre_local_low": 4441.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4459.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4460.045,
        "D_prior_index": 3,
        "H4_prior_index": 20,
        "H1_prior_index": 79,
        "pre_local_high": 4474.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4465.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T10:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4466.815,
        "D_prior_index": 3,
        "H4_prior_index": 21,
        "H1_prior_index": 80,
        "pre_local_low": 4459.495,
        "confirmation_time": "2026-01-07T11:25:00Z",
        "impulse_extreme": 4455.255,
        "fib50": 4461.035,
        "fib62": 4462.422,
        "entry_mid": 4461.729,
        "invalid": 4466.815,
        "risk_points": 5.086,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T16:20:00Z",
        "target1": 4456.642,
        "target2": 4451.556,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4467.745,
        "D_prior_index": 3,
        "H4_prior_index": 21,
        "H1_prior_index": 80,
        "pre_local_low": 4458.895,
        "confirmation_time": "2026-01-07T11:30:00Z",
        "impulse_extreme": 4454.835,
        "fib50": 4461.29,
        "fib62": 4462.839,
        "entry_mid": 4462.065,
        "invalid": 4467.745,
        "risk_points": 5.68,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T16:30:00Z",
        "target1": 4456.384,
        "target2": 4450.704,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4450.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4454.52,
        "D_prior_index": 3,
        "H4_prior_index": 22,
        "H1_prior_index": 84,
        "pre_local_low": 4428.015,
        "confirmation_time": "2026-01-07T15:10:00Z",
        "impulse_extreme": 4426.61,
        "fib50": 4440.565,
        "fib62": 4443.914,
        "entry_mid": 4442.24,
        "invalid": 4454.52,
        "risk_points": 12.28,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T15:25:00Z",
        "target1": 4429.959,
        "target2": 4417.679,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.885,
        "D_prior_index": 3,
        "H4_prior_index": 22,
        "H1_prior_index": 84,
        "pre_local_high": 4454.52,
        "confirmation_time": "2026-01-07T16:20:00Z",
        "impulse_extreme": 4461.27,
        "fib50": 4448.578,
        "fib62": 4445.531,
        "entry_mid": 4447.054,
        "invalid": 4435.885,
        "risk_points": 11.169,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T18:00:00Z",
        "target1": 4458.224,
        "target2": 4469.393,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4453.15,
        "D_prior_index": 3,
        "H4_prior_index": 22,
        "H1_prior_index": 84,
        "pre_local_low": 4428.015,
        "confirmation_time": "2026-01-07T15:10:00Z",
        "impulse_extreme": 4426.61,
        "fib50": 4439.88,
        "fib62": 4443.065,
        "entry_mid": 4441.472,
        "invalid": 4453.15,
        "risk_points": 11.678,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T15:25:00Z",
        "target1": 4429.795,
        "target2": 4418.117,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T15:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4423.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4452.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4440.555,
        "D_prior_index": 3,
        "H4_prior_index": 22,
        "H1_prior_index": 85,
        "pre_local_high": 4454.085,
        "confirmation_time": "2026-01-07T16:20:00Z",
        "impulse_extreme": 4461.27,
        "fib50": 4450.913,
        "fib62": 4448.427,
        "entry_mid": 4449.67,
        "invalid": 4440.555,
        "risk_points": 9.115,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-07T17:55:00Z",
        "target1": 4458.784,
        "target2": 4467.899,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4450.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.37,
        "D_prior_index": 3,
        "H4_prior_index": 22,
        "H1_prior_index": 86,
        "pre_local_low": 4423.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4457.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.06,
        "D_prior_index": 3,
        "H4_prior_index": 23,
        "H1_prior_index": 88,
        "pre_local_high": 4468.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4447.135,
        "D_prior_index": 3,
        "H4_prior_index": 23,
        "H1_prior_index": 88,
        "pre_local_high": 4468.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4450.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4445.545,
        "D_prior_index": 3,
        "H4_prior_index": 23,
        "H1_prior_index": 89,
        "pre_local_high": 4460.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.72,
        "D_prior_index": 3,
        "H4_prior_index": 23,
        "H1_prior_index": 91,
        "pre_local_high": 4461.625,
        "confirmation_time": "2026-01-07T23:00:00Z",
        "impulse_extreme": 4461.955,
        "fib50": 4455.837,
        "fib62": 4454.369,
        "entry_mid": 4455.103,
        "invalid": 4449.72,
        "risk_points": 5.383,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T00:25:00Z",
        "target1": 4460.487,
        "target2": 4465.87,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-07T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4455.39,
        "D_prior_index": 3,
        "H4_prior_index": 23,
        "H1_prior_index": 91,
        "pre_local_low": 4449.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-07T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4464.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-07T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-07T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4459.87,
        "D_prior_index": 4,
        "H4_prior_index": 24,
        "H1_prior_index": 92,
        "pre_local_high": 4464.05,
        "confirmation_time": "2026-01-08T00:00:00Z",
        "impulse_extreme": 4466.155,
        "fib50": 4463.012,
        "fib62": 4462.258,
        "entry_mid": 4462.635,
        "invalid": 4459.87,
        "risk_points": 2.765,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T00:05:00Z",
        "target1": 4465.401,
        "target2": 4468.166,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4466.485,
        "D_prior_index": 4,
        "H4_prior_index": 24,
        "H1_prior_index": 93,
        "pre_local_low": 4452.635,
        "confirmation_time": "2026-01-08T00:40:00Z",
        "impulse_extreme": 4450.175,
        "fib50": 4458.33,
        "fib62": 4460.287,
        "entry_mid": 4459.309,
        "invalid": 4466.485,
        "risk_points": 7.176,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T01:05:00Z",
        "target1": 4452.132,
        "target2": 4444.956,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4446.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.22,
        "D_prior_index": 4,
        "H4_prior_index": 24,
        "H1_prior_index": 94,
        "pre_local_high": 4466.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4441.935,
        "D_prior_index": 4,
        "H4_prior_index": 24,
        "H1_prior_index": 94,
        "pre_local_high": 4466.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4440.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.61,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 95,
        "pre_local_low": 4441.935,
        "confirmation_time": "2026-01-08T02:25:00Z",
        "impulse_extreme": 4441.04,
        "fib50": 4445.325,
        "fib62": 4446.353,
        "entry_mid": 4445.839,
        "invalid": 4449.61,
        "risk_points": 3.771,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T03:10:00Z",
        "target1": 4442.068,
        "target2": 4438.298,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4433.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.105,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 95,
        "pre_local_low": 4433.735,
        "confirmation_time": "2026-01-08T04:40:00Z",
        "impulse_extreme": 4432.12,
        "fib50": 4438.112,
        "fib62": 4439.551,
        "entry_mid": 4438.832,
        "invalid": 4444.105,
        "risk_points": 5.273,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T07:05:00Z",
        "target1": 4433.558,
        "target2": 4428.285,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4445.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4437.49,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 96,
        "pre_local_high": 4456.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4446.565,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 96,
        "pre_local_low": 4433.735,
        "confirmation_time": "2026-01-08T04:40:00Z",
        "impulse_extreme": 4432.12,
        "fib50": 4439.342,
        "fib62": 4441.076,
        "entry_mid": 4440.209,
        "invalid": 4446.565,
        "risk_points": 6.356,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T07:05:00Z",
        "target1": 4433.853,
        "target2": 4427.498,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4438.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4436.695,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 97,
        "pre_local_high": 4446.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T04:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4440.665,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 97,
        "pre_local_low": 4433.735,
        "confirmation_time": "2026-01-08T04:40:00Z",
        "impulse_extreme": 4432.12,
        "fib50": 4436.392,
        "fib62": 4437.418,
        "entry_mid": 4436.905,
        "invalid": 4440.665,
        "risk_points": 3.76,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T06:35:00Z",
        "target1": 4433.145,
        "target2": 4429.386,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4422.755,
        "D_prior_index": 4,
        "H4_prior_index": 25,
        "H1_prior_index": 98,
        "pre_local_high": 4443.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T05:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4428.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4415.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4429.565,
        "D_prior_index": 4,
        "H4_prior_index": 26,
        "H1_prior_index": 99,
        "pre_local_low": 4415.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4430.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4425.52,
        "D_prior_index": 4,
        "H4_prior_index": 26,
        "H1_prior_index": 101,
        "pre_local_high": 4439.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.51,
        "D_prior_index": 4,
        "H4_prior_index": 26,
        "H1_prior_index": 102,
        "pre_local_low": 4419.92,
        "confirmation_time": "2026-01-08T12:00:00Z",
        "impulse_extreme": 4415.32,
        "fib50": 4425.415,
        "fib62": 4427.838,
        "entry_mid": 4426.626,
        "invalid": 4435.51,
        "risk_points": 8.884,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T12:30:00Z",
        "target1": 4417.743,
        "target2": 4408.859,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4426.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4429.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4427.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-08T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4407.835,
        "D_prior_index": 4,
        "H4_prior_index": 27,
        "H1_prior_index": 105,
        "pre_local_high": 4435.035,
        "confirmation_time": "2026-01-08T14:45:00Z",
        "impulse_extreme": 4437.82,
        "fib50": 4422.827,
        "fib62": 4419.229,
        "entry_mid": 4421.028,
        "invalid": 4407.835,
        "risk_points": 13.193,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4418.925,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 107,
        "pre_local_high": 4436.205,
        "confirmation_time": "2026-01-08T14:45:00Z",
        "impulse_extreme": 4437.82,
        "fib50": 4428.372,
        "fib62": 4426.105,
        "entry_mid": 4427.239,
        "invalid": 4418.925,
        "risk_points": 8.314,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T15:00:00Z",
        "target1": 4435.553,
        "target2": 4443.866,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4430.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4435.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4454.095,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 108,
        "pre_local_low": 4418.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4456.83,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 108,
        "pre_local_low": 4418.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T16:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.155,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 109,
        "pre_local_low": 4420.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4447.035,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 109,
        "pre_local_high": 4458.155,
        "confirmation_time": "2026-01-08T16:30:00Z",
        "impulse_extreme": 4461.815,
        "fib50": 4454.425,
        "fib62": 4452.651,
        "entry_mid": 4453.538,
        "invalid": 4447.035,
        "risk_points": 6.503,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-08T18:10:00Z",
        "target1": 4460.041,
        "target2": 4466.545,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4465.745,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 110,
        "pre_local_low": 4443.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4457.715,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 110,
        "pre_local_high": 4465.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4463.605,
        "D_prior_index": 4,
        "H4_prior_index": 28,
        "H1_prior_index": 110,
        "pre_local_low": 4447.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4464.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-08T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.715,
        "D_prior_index": 4,
        "H4_prior_index": 29,
        "H1_prior_index": 112,
        "pre_local_high": 4464.195,
        "confirmation_time": "2026-01-08T20:20:00Z",
        "impulse_extreme": 4465.505,
        "fib50": 4455.11,
        "fib62": 4452.615,
        "entry_mid": 4453.863,
        "invalid": 4444.715,
        "risk_points": 9.148,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T01:05:00Z",
        "target1": 4463.01,
        "target2": 4472.158,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4453.0,
        "D_prior_index": 4,
        "H4_prior_index": 29,
        "H1_prior_index": 112,
        "pre_local_low": 4444.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4478.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-08T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4475.105,
        "D_prior_index": 5,
        "H4_prior_index": 30,
        "H1_prior_index": 115,
        "pre_local_high": 4479.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-08T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-08T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4472.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4476.81,
        "D_prior_index": 5,
        "H4_prior_index": 30,
        "H1_prior_index": 116,
        "pre_local_low": 4472.665,
        "confirmation_time": "2026-01-09T00:10:00Z",
        "impulse_extreme": 4471.685,
        "fib50": 4474.248,
        "fib62": 4474.863,
        "entry_mid": 4474.555,
        "invalid": 4476.81,
        "risk_points": 2.255,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T02:00:00Z",
        "target1": 4472.3,
        "target2": 4470.045,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.35,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 118,
        "pre_local_high": 4476.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4475.675,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 118,
        "pre_local_low": 4452.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4465.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.135,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 119,
        "pre_local_high": 4476.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4460.49,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 119,
        "pre_local_high": 4476.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4465.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4460.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-09T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4464.86,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 120,
        "pre_local_low": 4460.49,
        "confirmation_time": "2026-01-09T05:20:00Z",
        "impulse_extreme": 4458.295,
        "fib50": 4461.577,
        "fib62": 4462.365,
        "entry_mid": 4461.971,
        "invalid": 4464.86,
        "risk_points": 2.889,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4466.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.83,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 121,
        "pre_local_high": 4466.97,
        "confirmation_time": "2026-01-09T05:30:00Z",
        "impulse_extreme": 4471.025,
        "fib50": 4466.427,
        "fib62": 4465.324,
        "entry_mid": 4465.876,
        "invalid": 4461.83,
        "risk_points": 4.046,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T05:40:00Z",
        "target1": 4469.922,
        "target2": 4473.967,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.295,
        "D_prior_index": 5,
        "H4_prior_index": 31,
        "H1_prior_index": 121,
        "pre_local_high": 4466.97,
        "confirmation_time": "2026-01-09T05:30:00Z",
        "impulse_extreme": 4471.025,
        "fib50": 4464.66,
        "fib62": 4463.132,
        "entry_mid": 4463.896,
        "invalid": 4458.295,
        "risk_points": 5.601,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T08:50:00Z",
        "target1": 4469.497,
        "target2": 4475.099,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4471.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4472.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4477.545,
        "D_prior_index": 5,
        "H4_prior_index": 32,
        "H1_prior_index": 122,
        "pre_local_low": 4458.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4468.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4473.67,
        "D_prior_index": 5,
        "H4_prior_index": 32,
        "H1_prior_index": 123,
        "pre_local_low": 4466.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T08:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4466.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4464.2,
        "D_prior_index": 5,
        "H4_prior_index": 32,
        "H1_prior_index": 124,
        "pre_local_high": 4477.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4477.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4469.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-09T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.285,
        "D_prior_index": 5,
        "H4_prior_index": 33,
        "H1_prior_index": 126,
        "pre_local_high": 4477.7,
        "confirmation_time": "2026-01-09T13:30:00Z",
        "impulse_extreme": 4488.51,
        "fib50": 4478.398,
        "fib62": 4475.971,
        "entry_mid": 4477.184,
        "invalid": 4468.285,
        "risk_points": 8.899,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4469.315,
        "D_prior_index": 5,
        "H4_prior_index": 33,
        "H1_prior_index": 127,
        "pre_local_high": 4474.92,
        "confirmation_time": "2026-01-09T11:55:00Z",
        "impulse_extreme": 4476.395,
        "fib50": 4472.855,
        "fib62": 4472.005,
        "entry_mid": 4472.43,
        "invalid": 4469.315,
        "risk_points": 3.115,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T12:10:00Z",
        "target1": 4475.545,
        "target2": 4478.661,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T11:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.775,
        "D_prior_index": 5,
        "H4_prior_index": 33,
        "H1_prior_index": 127,
        "pre_local_high": 4474.92,
        "confirmation_time": "2026-01-09T11:55:00Z",
        "impulse_extreme": 4476.395,
        "fib50": 4472.585,
        "fib62": 4471.671,
        "entry_mid": 4472.128,
        "invalid": 4468.775,
        "risk_points": 3.353,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T12:10:00Z",
        "target1": 4475.481,
        "target2": 4478.833,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4480.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-09T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4463.72,
        "D_prior_index": 5,
        "H4_prior_index": 33,
        "H1_prior_index": 129,
        "pre_local_high": 4480.615,
        "confirmation_time": "2026-01-09T13:30:00Z",
        "impulse_extreme": 4488.51,
        "fib50": 4476.115,
        "fib62": 4473.14,
        "entry_mid": 4474.628,
        "invalid": 4463.72,
        "risk_points": 10.908,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T13:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4462.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-09T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.935,
        "D_prior_index": 5,
        "H4_prior_index": 33,
        "H1_prior_index": 129,
        "pre_local_high": 4488.51,
        "confirmation_time": "2026-01-09T13:35:00Z",
        "impulse_extreme": 4489.57,
        "fib50": 4474.253,
        "fib62": 4470.576,
        "entry_mid": 4472.414,
        "invalid": 4458.935,
        "risk_points": 13.479,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4482.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4498.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4508.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4501.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4510.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-09T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4494.8,
        "D_prior_index": 5,
        "H4_prior_index": 35,
        "H1_prior_index": 134,
        "pre_local_low": 4482.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4492.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-09T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4495.945,
        "D_prior_index": 5,
        "H4_prior_index": 35,
        "H1_prior_index": 135,
        "pre_local_high": 4504.635,
        "confirmation_time": "2026-01-09T20:10:00Z",
        "impulse_extreme": 4507.265,
        "fib50": 4501.605,
        "fib62": 4500.247,
        "entry_mid": 4500.926,
        "invalid": 4495.945,
        "risk_points": 4.981,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4509.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-09T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4502.565,
        "D_prior_index": 5,
        "H4_prior_index": 35,
        "H1_prior_index": 136,
        "pre_local_high": 4509.545,
        "confirmation_time": "2026-01-09T21:15:00Z",
        "impulse_extreme": 4510.225,
        "fib50": 4506.395,
        "fib62": 4505.476,
        "entry_mid": 4505.935,
        "invalid": 4502.565,
        "risk_points": 3.37,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-09T21:40:00Z",
        "target1": 4509.306,
        "target2": 4512.676,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4506.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-09T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-09T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4511.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-12T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.53,
        "D_prior_index": 6,
        "H4_prior_index": 36,
        "H1_prior_index": 139,
        "pre_local_high": 4545.59,
        "confirmation_time": "2026-01-12T00:05:00Z",
        "impulse_extreme": 4550.92,
        "fib50": 4543.725,
        "fib62": 4541.998,
        "entry_mid": 4542.862,
        "invalid": 4536.53,
        "risk_points": 6.332,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4601.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4574.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4584.605,
        "D_prior_index": 6,
        "H4_prior_index": 36,
        "H1_prior_index": 140,
        "pre_local_low": 4536.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T02:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4562.595,
        "D_prior_index": 6,
        "H4_prior_index": 37,
        "H1_prior_index": 141,
        "pre_local_high": 4601.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4582.165,
        "D_prior_index": 6,
        "H4_prior_index": 37,
        "H1_prior_index": 141,
        "pre_local_low": 4561.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T03:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.51,
        "D_prior_index": 6,
        "H4_prior_index": 37,
        "H1_prior_index": 142,
        "pre_local_low": 4561.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4565.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4572.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4563.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4570.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4566.145,
        "D_prior_index": 6,
        "H4_prior_index": 37,
        "H1_prior_index": 144,
        "pre_local_high": 4581.51,
        "confirmation_time": "2026-01-12T05:40:00Z",
        "impulse_extreme": 4583.04,
        "fib50": 4574.593,
        "fib62": 4572.565,
        "entry_mid": 4573.579,
        "invalid": 4566.145,
        "risk_points": 7.434,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T06:05:00Z",
        "target1": 4581.013,
        "target2": 4588.446,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4572.125,
        "D_prior_index": 6,
        "H4_prior_index": 37,
        "H1_prior_index": 144,
        "pre_local_low": 4563.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4585.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-12T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4569.88,
        "D_prior_index": 6,
        "H4_prior_index": 38,
        "H1_prior_index": 145,
        "pre_local_high": 4585.17,
        "confirmation_time": "2026-01-12T07:15:00Z",
        "impulse_extreme": 4586.08,
        "fib50": 4577.98,
        "fib62": 4576.036,
        "entry_mid": 4577.008,
        "invalid": 4569.88,
        "risk_points": 7.128,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4576.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4587.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4578.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4582.095,
        "D_prior_index": 6,
        "H4_prior_index": 38,
        "H1_prior_index": 147,
        "pre_local_high": 4589.725,
        "confirmation_time": "2026-01-12T08:45:00Z",
        "impulse_extreme": 4595.185,
        "fib50": 4588.64,
        "fib62": 4587.069,
        "entry_mid": 4587.855,
        "invalid": 4582.095,
        "risk_points": 5.76,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T09:55:00Z",
        "target1": 4593.614,
        "target2": 4599.374,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4579.535,
        "D_prior_index": 6,
        "H4_prior_index": 38,
        "H1_prior_index": 147,
        "pre_local_high": 4589.725,
        "confirmation_time": "2026-01-12T08:45:00Z",
        "impulse_extreme": 4595.185,
        "fib50": 4587.36,
        "fib62": 4585.482,
        "entry_mid": 4586.421,
        "invalid": 4579.535,
        "risk_points": 6.886,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T10:05:00Z",
        "target1": 4593.307,
        "target2": 4600.193,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4593.655,
        "D_prior_index": 6,
        "H4_prior_index": 38,
        "H1_prior_index": 148,
        "pre_local_high": 4599.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4586.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4594.155,
        "D_prior_index": 6,
        "H4_prior_index": 39,
        "H1_prior_index": 149,
        "pre_local_low": 4583.155,
        "confirmation_time": "2026-01-12T12:05:00Z",
        "impulse_extreme": 4579.07,
        "fib50": 4586.612,
        "fib62": 4588.423,
        "entry_mid": 4587.518,
        "invalid": 4594.155,
        "risk_points": 6.637,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T12:40:00Z",
        "target1": 4580.88,
        "target2": 4574.243,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4586.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4594.74,
        "D_prior_index": 6,
        "H4_prior_index": 39,
        "H1_prior_index": 149,
        "pre_local_low": 4586.12,
        "confirmation_time": "2026-01-12T11:25:00Z",
        "impulse_extreme": 4583.905,
        "fib50": 4589.323,
        "fib62": 4590.623,
        "entry_mid": 4589.973,
        "invalid": 4594.74,
        "risk_points": 4.767,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T11:35:00Z",
        "target1": 4585.205,
        "target2": 4580.438,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4595.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T11:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.15,
        "D_prior_index": 6,
        "H4_prior_index": 39,
        "H1_prior_index": 150,
        "pre_local_low": 4583.905,
        "confirmation_time": "2026-01-12T12:05:00Z",
        "impulse_extreme": 4579.07,
        "fib50": 4585.61,
        "fib62": 4587.18,
        "entry_mid": 4586.395,
        "invalid": 4592.15,
        "risk_points": 5.755,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T12:35:00Z",
        "target1": 4580.64,
        "target2": 4574.884,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4579.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4578.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4611.24,
        "D_prior_index": 6,
        "H4_prior_index": 39,
        "H1_prior_index": 152,
        "pre_local_low": 4578.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4613.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.06,
        "D_prior_index": 6,
        "H4_prior_index": 40,
        "H1_prior_index": 154,
        "pre_local_high": 4627.61,
        "confirmation_time": "2026-01-12T16:10:00Z",
        "impulse_extreme": 4629.915,
        "fib50": 4623.988,
        "fib62": 4622.565,
        "entry_mid": 4623.276,
        "invalid": 4618.06,
        "risk_points": 5.216,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T16:20:00Z",
        "target1": 4628.492,
        "target2": 4633.709,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4617.615,
        "D_prior_index": 6,
        "H4_prior_index": 40,
        "H1_prior_index": 155,
        "pre_local_high": 4627.61,
        "confirmation_time": "2026-01-12T16:10:00Z",
        "impulse_extreme": 4629.915,
        "fib50": 4623.765,
        "fib62": 4622.289,
        "entry_mid": 4623.027,
        "invalid": 4617.615,
        "risk_points": 5.412,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T16:20:00Z",
        "target1": 4628.439,
        "target2": 4633.851,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4630.19,
        "D_prior_index": 6,
        "H4_prior_index": 40,
        "H1_prior_index": 155,
        "pre_local_low": 4592.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.515,
        "D_prior_index": 6,
        "H4_prior_index": 40,
        "H1_prior_index": 156,
        "pre_local_low": 4607.835,
        "confirmation_time": "2026-01-12T18:15:00Z",
        "impulse_extreme": 4601.89,
        "fib50": 4610.203,
        "fib62": 4612.198,
        "entry_mid": 4611.2,
        "invalid": 4618.515,
        "risk_points": 7.315,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T18:30:00Z",
        "target1": 4603.885,
        "target2": 4596.57,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.595,
        "D_prior_index": 6,
        "H4_prior_index": 40,
        "H1_prior_index": 156,
        "pre_local_low": 4607.835,
        "confirmation_time": "2026-01-12T18:15:00Z",
        "impulse_extreme": 4601.89,
        "fib50": 4610.243,
        "fib62": 4612.247,
        "entry_mid": 4611.245,
        "invalid": 4618.595,
        "risk_points": 7.35,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T18:30:00Z",
        "target1": 4603.895,
        "target2": 4596.544,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4620.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-12T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.985,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 158,
        "pre_local_low": 4600.345,
        "confirmation_time": "2026-01-12T20:40:00Z",
        "impulse_extreme": 4592.685,
        "fib50": 4605.835,
        "fib62": 4608.991,
        "entry_mid": 4607.413,
        "invalid": 4618.985,
        "risk_points": 11.572,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4599.73,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 159,
        "pre_local_high": 4618.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-12T20:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.805,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 159,
        "pre_local_low": 4599.73,
        "confirmation_time": "2026-01-12T20:40:00Z",
        "impulse_extreme": 4592.685,
        "fib50": 4598.745,
        "fib62": 4600.199,
        "entry_mid": 4599.472,
        "invalid": 4604.805,
        "risk_points": 5.333,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-12T20:50:00Z",
        "target1": 4594.139,
        "target2": 4588.807,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4591.66,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 159,
        "pre_local_high": 4618.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4591.11,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 160,
        "pre_local_high": 4618.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4590.91,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 160,
        "pre_local_high": 4617.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4595.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-12T21:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4589.415,
        "D_prior_index": 6,
        "H4_prior_index": 41,
        "H1_prior_index": 160,
        "pre_local_high": 4605.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-12T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-12T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4590.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4575.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T02:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4576.75,
        "D_prior_index": 7,
        "H4_prior_index": 43,
        "H1_prior_index": 164,
        "pre_local_high": 4595.955,
        "confirmation_time": "2026-01-13T03:10:00Z",
        "impulse_extreme": 4599.845,
        "fib50": 4588.298,
        "fib62": 4585.526,
        "entry_mid": 4586.912,
        "invalid": 4576.75,
        "risk_points": 10.162,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T05:30:00Z",
        "target1": 4597.074,
        "target2": 4607.235,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.96,
        "D_prior_index": 7,
        "H4_prior_index": 43,
        "H1_prior_index": 164,
        "pre_local_high": 4595.955,
        "confirmation_time": "2026-01-13T03:10:00Z",
        "impulse_extreme": 4599.845,
        "fib50": 4590.903,
        "fib62": 4588.756,
        "entry_mid": 4589.829,
        "invalid": 4581.96,
        "risk_points": 7.869,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T05:30:00Z",
        "target1": 4597.699,
        "target2": 4605.568,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4594.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4602.195,
        "D_prior_index": 7,
        "H4_prior_index": 43,
        "H1_prior_index": 167,
        "pre_local_low": 4585.765,
        "confirmation_time": "2026-01-13T06:25:00Z",
        "impulse_extreme": 4582.4,
        "fib50": 4592.297,
        "fib62": 4594.673,
        "entry_mid": 4593.485,
        "invalid": 4602.195,
        "risk_points": 8.71,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T08:25:00Z",
        "target1": 4584.775,
        "target2": 4576.066,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4578.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4587.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4577.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-13T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4595.845,
        "D_prior_index": 7,
        "H4_prior_index": 44,
        "H1_prior_index": 171,
        "pre_local_low": 4577.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4586.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4589.07,
        "D_prior_index": 7,
        "H4_prior_index": 45,
        "H1_prior_index": 173,
        "pre_local_low": 4580.4,
        "confirmation_time": "2026-01-13T12:20:00Z",
        "impulse_extreme": 4579.405,
        "fib50": 4584.237,
        "fib62": 4585.397,
        "entry_mid": 4584.817,
        "invalid": 4589.07,
        "risk_points": 4.253,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T12:35:00Z",
        "target1": 4580.565,
        "target2": 4576.312,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4582.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.18,
        "D_prior_index": 7,
        "H4_prior_index": 45,
        "H1_prior_index": 173,
        "pre_local_low": 4580.4,
        "confirmation_time": "2026-01-13T12:20:00Z",
        "impulse_extreme": 4579.405,
        "fib50": 4585.792,
        "fib62": 4587.325,
        "entry_mid": 4586.559,
        "invalid": 4592.18,
        "risk_points": 5.621,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T12:40:00Z",
        "target1": 4580.938,
        "target2": 4575.317,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4606.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-13T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4621.03,
        "D_prior_index": 7,
        "H4_prior_index": 45,
        "H1_prior_index": 175,
        "pre_local_low": 4577.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.875,
        "D_prior_index": 7,
        "H4_prior_index": 46,
        "H1_prior_index": 178,
        "pre_local_low": 4600.83,
        "confirmation_time": "2026-01-13T16:25:00Z",
        "impulse_extreme": 4592.94,
        "fib50": 4606.907,
        "fib62": 4610.26,
        "entry_mid": 4608.584,
        "invalid": 4620.875,
        "risk_points": 12.291,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T16:35:00Z",
        "target1": 4596.292,
        "target2": 4584.001,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4606.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4616.09,
        "D_prior_index": 7,
        "H4_prior_index": 46,
        "H1_prior_index": 179,
        "pre_local_low": 4592.94,
        "confirmation_time": "2026-01-13T17:55:00Z",
        "impulse_extreme": 4586.825,
        "fib50": 4601.458,
        "fib62": 4604.969,
        "entry_mid": 4603.213,
        "invalid": 4616.09,
        "risk_points": 12.877,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T18:45:00Z",
        "target1": 4590.337,
        "target2": 4577.46,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-13T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4606.465,
        "D_prior_index": 7,
        "H4_prior_index": 46,
        "H1_prior_index": 179,
        "pre_local_high": 4620.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-13T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4585.805,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 180,
        "pre_local_high": 4616.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4595.125,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 180,
        "pre_local_low": 4583.905,
        "confirmation_time": "2026-01-13T20:30:00Z",
        "impulse_extreme": 4571.105,
        "fib50": 4583.115,
        "fib62": 4585.997,
        "entry_mid": 4584.556,
        "invalid": 4595.125,
        "risk_points": 10.569,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T20:40:00Z",
        "target1": 4573.987,
        "target2": 4563.419,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4602.09,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 180,
        "pre_local_low": 4581.175,
        "confirmation_time": "2026-01-13T20:30:00Z",
        "impulse_extreme": 4571.105,
        "fib50": 4586.597,
        "fib62": 4590.316,
        "entry_mid": 4588.457,
        "invalid": 4602.09,
        "risk_points": 13.633,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T20:40:00Z",
        "target1": 4574.823,
        "target2": 4561.19,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4584.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-13T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4597.225,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 181,
        "pre_local_low": 4581.175,
        "confirmation_time": "2026-01-13T20:30:00Z",
        "impulse_extreme": 4571.105,
        "fib50": 4584.165,
        "fib62": 4587.299,
        "entry_mid": 4585.732,
        "invalid": 4597.225,
        "risk_points": 11.493,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-13T20:40:00Z",
        "target1": 4574.239,
        "target2": 4562.747,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4598.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4590.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4590.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-13T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4582.975,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 183,
        "pre_local_high": 4598.99,
        "confirmation_time": "2026-01-14T00:00:00Z",
        "impulse_extreme": 4603.785,
        "fib50": 4593.38,
        "fib62": 4590.883,
        "entry_mid": 4592.131,
        "invalid": 4582.975,
        "risk_points": 9.156,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-13T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4589.935,
        "D_prior_index": 7,
        "H4_prior_index": 47,
        "H1_prior_index": 183,
        "pre_local_low": 4569.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-13T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-13T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4598.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4604.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4618.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.91,
        "D_prior_index": 8,
        "H4_prior_index": 48,
        "H1_prior_index": 186,
        "pre_local_low": 4594.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.95,
        "D_prior_index": 8,
        "H4_prior_index": 49,
        "H1_prior_index": 187,
        "pre_local_low": 4603.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4621.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4622.695,
        "D_prior_index": 8,
        "H4_prior_index": 49,
        "H1_prior_index": 187,
        "pre_local_low": 4604.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4623.79,
        "D_prior_index": 8,
        "H4_prior_index": 49,
        "H1_prior_index": 187,
        "pre_local_low": 4610.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4630.455,
        "D_prior_index": 8,
        "H4_prior_index": 49,
        "H1_prior_index": 189,
        "pre_local_low": 4613.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4630.63,
        "D_prior_index": 8,
        "H4_prior_index": 49,
        "H1_prior_index": 189,
        "pre_local_low": 4613.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4635.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4638.5,
        "D_prior_index": 8,
        "H4_prior_index": 50,
        "H1_prior_index": 192,
        "pre_local_low": 4617.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4639.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4621.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4639.63,
        "D_prior_index": 8,
        "H4_prior_index": 50,
        "H1_prior_index": 194,
        "pre_local_low": 4621.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4627.08,
        "D_prior_index": 8,
        "H4_prior_index": 50,
        "H1_prior_index": 194,
        "pre_local_high": 4639.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4632.55,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 195,
        "pre_local_low": 4621.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4638.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4631.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4630.345,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 196,
        "pre_local_high": 4639.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4637.58,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 196,
        "pre_local_low": 4627.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4627.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4638.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4634.045,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 197,
        "pre_local_high": 4638.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T12:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4633.74,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 197,
        "pre_local_high": 4638.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4624.305,
        "D_prior_index": 8,
        "H4_prior_index": 51,
        "H1_prior_index": 198,
        "pre_local_high": 4641.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-14T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4639.07,
        "D_prior_index": 8,
        "H4_prior_index": 52,
        "H1_prior_index": 199,
        "pre_local_low": 4624.305,
        "confirmation_time": "2026-01-14T14:35:00Z",
        "impulse_extreme": 4617.34,
        "fib50": 4628.205,
        "fib62": 4630.813,
        "entry_mid": 4629.509,
        "invalid": 4639.07,
        "risk_points": 9.561,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-14T18:15:00Z",
        "target1": 4619.948,
        "target2": 4610.386,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4607.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4621.455,
        "D_prior_index": 8,
        "H4_prior_index": 52,
        "H1_prior_index": 201,
        "pre_local_low": 4599.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4608.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-14T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4619.25,
        "D_prior_index": 8,
        "H4_prior_index": 52,
        "H1_prior_index": 202,
        "pre_local_low": 4608.755,
        "confirmation_time": "2026-01-14T17:20:00Z",
        "impulse_extreme": 4607.085,
        "fib50": 4613.167,
        "fib62": 4614.627,
        "entry_mid": 4613.897,
        "invalid": 4619.25,
        "risk_points": 5.353,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-14T17:50:00Z",
        "target1": 4608.545,
        "target2": 4603.192,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-14T17:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4605.555,
        "D_prior_index": 8,
        "H4_prior_index": 52,
        "H1_prior_index": 202,
        "pre_local_high": 4624.935,
        "confirmation_time": "2026-01-14T18:15:00Z",
        "impulse_extreme": 4629.4,
        "fib50": 4617.477,
        "fib62": 4614.616,
        "entry_mid": 4616.047,
        "invalid": 4605.555,
        "risk_points": 10.492,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-14T23:05:00Z",
        "target1": 4626.539,
        "target2": 4637.03,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4642.97,
        "D_prior_index": 8,
        "H4_prior_index": 53,
        "H1_prior_index": 204,
        "pre_local_low": 4601.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4640.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4641.545,
        "D_prior_index": 8,
        "H4_prior_index": 53,
        "H1_prior_index": 204,
        "pre_local_low": 4620.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-14T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4641.635,
        "D_prior_index": 8,
        "H4_prior_index": 53,
        "H1_prior_index": 205,
        "pre_local_low": 4624.755,
        "confirmation_time": "2026-01-14T21:10:00Z",
        "impulse_extreme": 4624.47,
        "fib50": 4633.052,
        "fib62": 4635.112,
        "entry_mid": 4634.082,
        "invalid": 4641.635,
        "risk_points": 7.553,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-14T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4617.89,
        "D_prior_index": 8,
        "H4_prior_index": 53,
        "H1_prior_index": 206,
        "pre_local_high": 4641.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-14T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-14T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4602.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.26,
        "D_prior_index": 9,
        "H4_prior_index": 54,
        "H1_prior_index": 208,
        "pre_local_low": 4602.88,
        "confirmation_time": "2026-01-15T01:20:00Z",
        "impulse_extreme": 4597.725,
        "fib50": 4607.993,
        "fib62": 4610.457,
        "entry_mid": 4609.225,
        "invalid": 4618.26,
        "risk_points": 9.035,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T02:05:00Z",
        "target1": 4600.189,
        "target2": 4591.154,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4583.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.23,
        "D_prior_index": 9,
        "H4_prior_index": 54,
        "H1_prior_index": 209,
        "pre_local_low": 4583.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4604.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4614.86,
        "D_prior_index": 9,
        "H4_prior_index": 55,
        "H1_prior_index": 210,
        "pre_local_low": 4583.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T03:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.065,
        "D_prior_index": 9,
        "H4_prior_index": 55,
        "H1_prior_index": 211,
        "pre_local_high": 4614.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4587.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4597.555,
        "D_prior_index": 9,
        "H4_prior_index": 55,
        "H1_prior_index": 212,
        "pre_local_low": 4581.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4593.97,
        "D_prior_index": 9,
        "H4_prior_index": 55,
        "H1_prior_index": 213,
        "pre_local_low": 4581.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4600.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4613.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4599.22,
        "D_prior_index": 9,
        "H4_prior_index": 56,
        "H1_prior_index": 215,
        "pre_local_high": 4613.645,
        "confirmation_time": "2026-01-15T10:20:00Z",
        "impulse_extreme": 4615.87,
        "fib50": 4607.545,
        "fib62": 4605.547,
        "entry_mid": 4606.546,
        "invalid": 4599.22,
        "risk_points": 7.326,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T13:15:00Z",
        "target1": 4613.872,
        "target2": 4621.198,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4597.865,
        "D_prior_index": 9,
        "H4_prior_index": 56,
        "H1_prior_index": 216,
        "pre_local_high": 4613.645,
        "confirmation_time": "2026-01-15T10:20:00Z",
        "impulse_extreme": 4615.87,
        "fib50": 4606.868,
        "fib62": 4604.707,
        "entry_mid": 4605.787,
        "invalid": 4597.865,
        "risk_points": 7.922,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T13:15:00Z",
        "target1": 4613.709,
        "target2": 4621.632,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.735,
        "D_prior_index": 9,
        "H4_prior_index": 56,
        "H1_prior_index": 216,
        "pre_local_low": 4597.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4606.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4599.24,
        "D_prior_index": 9,
        "H4_prior_index": 56,
        "H1_prior_index": 216,
        "pre_local_high": 4613.645,
        "confirmation_time": "2026-01-15T10:20:00Z",
        "impulse_extreme": 4615.87,
        "fib50": 4607.555,
        "fib62": 4605.559,
        "entry_mid": 4606.557,
        "invalid": 4599.24,
        "risk_points": 7.317,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T13:15:00Z",
        "target1": 4613.874,
        "target2": 4621.192,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4600.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4605.535,
        "D_prior_index": 9,
        "H4_prior_index": 56,
        "H1_prior_index": 217,
        "pre_local_low": 4597.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4614.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4615.87,
        "D_prior_index": 9,
        "H4_prior_index": 57,
        "H1_prior_index": 218,
        "pre_local_low": 4600.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.655,
        "D_prior_index": 9,
        "H4_prior_index": 57,
        "H1_prior_index": 218,
        "pre_local_high": 4615.87,
        "confirmation_time": "2026-01-15T10:35:00Z",
        "impulse_extreme": 4618.39,
        "fib50": 4614.523,
        "fib62": 4613.594,
        "entry_mid": 4614.058,
        "invalid": 4610.655,
        "risk_points": 3.403,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T12:15:00Z",
        "target1": 4617.462,
        "target2": 4620.865,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4621.605,
        "D_prior_index": 9,
        "H4_prior_index": 57,
        "H1_prior_index": 219,
        "pre_local_low": 4602.18,
        "confirmation_time": "2026-01-15T13:30:00Z",
        "impulse_extreme": 4593.99,
        "fib50": 4607.797,
        "fib62": 4611.111,
        "entry_mid": 4609.454,
        "invalid": 4621.605,
        "risk_points": 12.151,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T14:30:00Z",
        "target1": 4597.304,
        "target2": 4585.153,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.89,
        "D_prior_index": 9,
        "H4_prior_index": 57,
        "H1_prior_index": 220,
        "pre_local_low": 4610.655,
        "confirmation_time": "2026-01-15T13:15:00Z",
        "impulse_extreme": 4604.89,
        "fib50": 4612.89,
        "fib62": 4614.81,
        "entry_mid": 4613.85,
        "invalid": 4620.89,
        "risk_points": 7.04,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T14:50:00Z",
        "target1": 4606.81,
        "target2": 4599.77,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4614.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4612.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-15T14:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4600.41,
        "D_prior_index": 9,
        "H4_prior_index": 58,
        "H1_prior_index": 222,
        "pre_local_high": 4615.045,
        "confirmation_time": "2026-01-15T15:15:00Z",
        "impulse_extreme": 4618.25,
        "fib50": 4609.33,
        "fib62": 4607.189,
        "entry_mid": 4608.26,
        "invalid": 4600.41,
        "risk_points": 7.85,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-15T16:05:00Z",
        "target1": 4616.109,
        "target2": 4623.959,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T14:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4615.27,
        "D_prior_index": 9,
        "H4_prior_index": 58,
        "H1_prior_index": 223,
        "pre_local_low": 4581.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4608.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T16:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4625.015,
        "D_prior_index": 9,
        "H4_prior_index": 58,
        "H1_prior_index": 224,
        "pre_local_low": 4600.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4601.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4613.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4617.01,
        "D_prior_index": 9,
        "H4_prior_index": 58,
        "H1_prior_index": 225,
        "pre_local_low": 4601.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4621.275,
        "D_prior_index": 9,
        "H4_prior_index": 59,
        "H1_prior_index": 226,
        "pre_local_low": 4601.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4619.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4621.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4612.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4600.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4609.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-15T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4603.505,
        "D_prior_index": 9,
        "H4_prior_index": 59,
        "H1_prior_index": 228,
        "pre_local_high": 4621.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4613.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4620.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-15T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-15T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4606.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4593.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4608.655,
        "D_prior_index": 10,
        "H4_prior_index": 60,
        "H1_prior_index": 232,
        "pre_local_low": 4593.78,
        "confirmation_time": "2026-01-16T02:50:00Z",
        "impulse_extreme": 4592.39,
        "fib50": 4600.523,
        "fib62": 4602.474,
        "entry_mid": 4601.498,
        "invalid": 4608.655,
        "risk_points": 7.157,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T04:20:00Z",
        "target1": 4594.342,
        "target2": 4587.185,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4596.92,
        "D_prior_index": 10,
        "H4_prior_index": 61,
        "H1_prior_index": 233,
        "pre_local_high": 4608.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4604.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4599.9,
        "D_prior_index": 10,
        "H4_prior_index": 61,
        "H1_prior_index": 234,
        "pre_local_low": 4591.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4597.565,
        "D_prior_index": 10,
        "H4_prior_index": 61,
        "H1_prior_index": 234,
        "pre_local_low": 4591.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4601.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-16T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4597.34,
        "D_prior_index": 10,
        "H4_prior_index": 61,
        "H1_prior_index": 235,
        "pre_local_high": 4601.5,
        "confirmation_time": "2026-01-16T05:35:00Z",
        "impulse_extreme": 4604.14,
        "fib50": 4600.74,
        "fib62": 4599.924,
        "entry_mid": 4600.332,
        "invalid": 4597.34,
        "risk_points": 2.992,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T05:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4601.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4603.615,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 237,
        "pre_local_high": 4616.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4594.095,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 237,
        "pre_local_high": 4616.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4612.07,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 238,
        "pre_local_low": 4594.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.7,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 239,
        "pre_local_low": 4594.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.59,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 239,
        "pre_local_high": 4612.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4601.31,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 239,
        "pre_local_high": 4612.245,
        "confirmation_time": "2026-01-16T11:30:00Z",
        "impulse_extreme": 4613.445,
        "fib50": 4607.378,
        "fib62": 4605.921,
        "entry_mid": 4606.649,
        "invalid": 4601.31,
        "risk_points": 5.339,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T12:20:00Z",
        "target1": 4611.989,
        "target2": 4617.328,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4608.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4598.925,
        "D_prior_index": 10,
        "H4_prior_index": 62,
        "H1_prior_index": 240,
        "pre_local_high": 4610.725,
        "confirmation_time": "2026-01-16T10:20:00Z",
        "impulse_extreme": 4611.025,
        "fib50": 4604.975,
        "fib62": 4603.523,
        "entry_mid": 4604.249,
        "invalid": 4598.925,
        "risk_points": 5.324,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T10:50:00Z",
        "target1": 4609.573,
        "target2": 4614.897,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-16T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4606.895,
        "D_prior_index": 10,
        "H4_prior_index": 63,
        "H1_prior_index": 241,
        "pre_local_high": 4611.215,
        "confirmation_time": "2026-01-16T11:25:00Z",
        "impulse_extreme": 4611.66,
        "fib50": 4609.278,
        "fib62": 4608.706,
        "entry_mid": 4608.992,
        "invalid": 4606.895,
        "risk_points": 2.097,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4598.6,
        "D_prior_index": 10,
        "H4_prior_index": 63,
        "H1_prior_index": 242,
        "pre_local_high": 4611.215,
        "confirmation_time": "2026-01-16T11:25:00Z",
        "impulse_extreme": 4611.66,
        "fib50": 4605.13,
        "fib62": 4603.563,
        "entry_mid": 4604.346,
        "invalid": 4598.6,
        "risk_points": 5.746,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T12:25:00Z",
        "target1": 4610.093,
        "target2": 4615.839,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4616.33,
        "D_prior_index": 10,
        "H4_prior_index": 63,
        "H1_prior_index": 242,
        "pre_local_low": 4598.6,
        "confirmation_time": "2026-01-16T13:05:00Z",
        "impulse_extreme": 4597.06,
        "fib50": 4606.695,
        "fib62": 4609.007,
        "entry_mid": 4607.851,
        "invalid": 4616.33,
        "risk_points": 8.479,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T14:05:00Z",
        "target1": 4599.372,
        "target2": 4590.894,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4613.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4605.77,
        "D_prior_index": 10,
        "H4_prior_index": 63,
        "H1_prior_index": 244,
        "pre_local_low": 4597.41,
        "confirmation_time": "2026-01-16T13:05:00Z",
        "impulse_extreme": 4597.06,
        "fib50": 4601.415,
        "fib62": 4602.46,
        "entry_mid": 4601.938,
        "invalid": 4605.77,
        "risk_points": 3.832,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T13:40:00Z",
        "target1": 4598.105,
        "target2": 4594.273,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T14:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4609.495,
        "D_prior_index": 10,
        "H4_prior_index": 64,
        "H1_prior_index": 245,
        "pre_local_low": 4582.67,
        "confirmation_time": "2026-01-16T15:25:00Z",
        "impulse_extreme": 4564.575,
        "fib50": 4587.035,
        "fib62": 4592.425,
        "entry_mid": 4589.73,
        "invalid": 4609.495,
        "risk_points": 19.765,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T16:05:00Z",
        "target1": 4569.965,
        "target2": 4550.201,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-16T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4596.135,
        "D_prior_index": 10,
        "H4_prior_index": 64,
        "H1_prior_index": 245,
        "pre_local_high": 4609.495,
        "confirmation_time": "2026-01-16T14:45:00Z",
        "impulse_extreme": 4614.685,
        "fib50": 4605.41,
        "fib62": 4603.184,
        "entry_mid": 4604.297,
        "invalid": 4596.135,
        "risk_points": 8.162,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-16T15:15:00Z",
        "target1": 4612.459,
        "target2": 4620.621,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4614.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-16T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4596.74,
        "D_prior_index": 10,
        "H4_prior_index": 64,
        "H1_prior_index": 247,
        "pre_local_low": 4536.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4599.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-16T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.0,
        "D_prior_index": 10,
        "H4_prior_index": 65,
        "H1_prior_index": 250,
        "pre_local_high": 4596.2,
        "confirmation_time": "2026-01-16T21:15:00Z",
        "impulse_extreme": 4598.64,
        "fib50": 4589.82,
        "fib62": 4587.703,
        "entry_mid": 4588.762,
        "invalid": 4581.0,
        "risk_points": 7.762,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-16T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4580.97,
        "D_prior_index": 10,
        "H4_prior_index": 65,
        "H1_prior_index": 250,
        "pre_local_high": 4596.2,
        "confirmation_time": "2026-01-16T21:15:00Z",
        "impulse_extreme": 4598.64,
        "fib50": 4589.805,
        "fib62": 4587.685,
        "entry_mid": 4588.745,
        "invalid": 4580.97,
        "risk_points": 7.775,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-16T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-16T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-18T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-18T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4690.94,
        "D_prior_index": 11,
        "H4_prior_index": 66,
        "H1_prior_index": 253,
        "pre_local_low": 4581.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4682.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4671.965,
        "D_prior_index": 11,
        "H4_prior_index": 66,
        "H1_prior_index": 254,
        "pre_local_high": 4690.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4656.575,
        "D_prior_index": 11,
        "H4_prior_index": 66,
        "H1_prior_index": 255,
        "pre_local_high": 4682.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4656.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4667.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4653.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4656.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.0,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 256,
        "pre_local_low": 4653.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4655.06,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 256,
        "pre_local_high": 4676.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4670.015,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 257,
        "pre_local_low": 4653.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4658.205,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 258,
        "pre_local_high": 4670.015,
        "confirmation_time": "2026-01-19T05:20:00Z",
        "impulse_extreme": 4672.47,
        "fib50": 4665.337,
        "fib62": 4663.626,
        "entry_mid": 4664.482,
        "invalid": 4658.205,
        "risk_points": 6.277,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T05:40:00Z",
        "target1": 4670.758,
        "target2": 4677.035,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4672.47,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 259,
        "pre_local_low": 4658.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4674.48,
        "D_prior_index": 11,
        "H4_prior_index": 67,
        "H1_prior_index": 259,
        "pre_local_low": 4658.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4672.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4661.935,
        "D_prior_index": 11,
        "H4_prior_index": 68,
        "H1_prior_index": 261,
        "pre_local_high": 4679.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4672.99,
        "D_prior_index": 11,
        "H4_prior_index": 68,
        "H1_prior_index": 263,
        "pre_local_low": 4661.725,
        "confirmation_time": "2026-01-19T10:40:00Z",
        "impulse_extreme": 4661.34,
        "fib50": 4667.165,
        "fib62": 4668.563,
        "entry_mid": 4667.864,
        "invalid": 4672.99,
        "risk_points": 5.126,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T11:25:00Z",
        "target1": 4662.738,
        "target2": 4657.612,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.945,
        "D_prior_index": 11,
        "H4_prior_index": 68,
        "H1_prior_index": 263,
        "pre_local_high": 4674.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4666.77,
        "D_prior_index": 11,
        "H4_prior_index": 69,
        "H1_prior_index": 264,
        "pre_local_high": 4672.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T10:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4671.29,
        "D_prior_index": 11,
        "H4_prior_index": 69,
        "H1_prior_index": 264,
        "pre_local_low": 4661.725,
        "confirmation_time": "2026-01-19T10:40:00Z",
        "impulse_extreme": 4661.34,
        "fib50": 4666.315,
        "fib62": 4667.509,
        "entry_mid": 4666.912,
        "invalid": 4671.29,
        "risk_points": 4.378,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T10:45:00Z",
        "target1": 4662.534,
        "target2": 4658.156,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4667.665,
        "D_prior_index": 11,
        "H4_prior_index": 69,
        "H1_prior_index": 265,
        "pre_local_low": 4661.34,
        "confirmation_time": "2026-01-19T11:55:00Z",
        "impulse_extreme": 4659.73,
        "fib50": 4663.698,
        "fib62": 4664.65,
        "entry_mid": 4664.174,
        "invalid": 4667.665,
        "risk_points": 3.491,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T12:05:00Z",
        "target1": 4660.682,
        "target2": 4657.191,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T11:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4673.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4673.725,
        "D_prior_index": 11,
        "H4_prior_index": 69,
        "H1_prior_index": 267,
        "pre_local_low": 4659.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4673.85,
        "D_prior_index": 11,
        "H4_prior_index": 69,
        "H1_prior_index": 267,
        "pre_local_low": 4659.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4670.52,
        "D_prior_index": 11,
        "H4_prior_index": 70,
        "H1_prior_index": 268,
        "pre_local_low": 4661.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.645,
        "D_prior_index": 11,
        "H4_prior_index": 70,
        "H1_prior_index": 269,
        "pre_local_high": 4673.85,
        "confirmation_time": "2026-01-19T15:50:00Z",
        "impulse_extreme": 4675.015,
        "fib50": 4669.83,
        "fib62": 4668.586,
        "entry_mid": 4669.208,
        "invalid": 4664.645,
        "risk_points": 4.563,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T17:15:00Z",
        "target1": 4673.771,
        "target2": 4678.333,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4670.985,
        "D_prior_index": 11,
        "H4_prior_index": 70,
        "H1_prior_index": 269,
        "pre_local_low": 4661.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4670.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-19T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4669.17,
        "D_prior_index": 11,
        "H4_prior_index": 70,
        "H1_prior_index": 271,
        "pre_local_high": 4676.28,
        "confirmation_time": "2026-01-19T17:40:00Z",
        "impulse_extreme": 4676.38,
        "fib50": 4672.775,
        "fib62": 4671.91,
        "entry_mid": 4672.342,
        "invalid": 4669.17,
        "risk_points": 3.172,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-19T19:10:00Z",
        "target1": 4675.515,
        "target2": 4678.687,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-19T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4678.95,
        "D_prior_index": 11,
        "H4_prior_index": 70,
        "H1_prior_index": 271,
        "pre_local_low": 4669.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4673.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4674.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T23:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4672.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-19T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-19T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-20T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4668.07,
        "D_prior_index": 12,
        "H4_prior_index": 72,
        "H1_prior_index": 275,
        "pre_local_low": 4664.1,
        "confirmation_time": "2026-01-20T00:25:00Z",
        "impulse_extreme": 4659.395,
        "fib50": 4663.733,
        "fib62": 4664.774,
        "entry_mid": 4664.253,
        "invalid": 4668.07,
        "risk_points": 3.817,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-20T00:30:00Z",
        "target1": 4660.436,
        "target2": 4656.619,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-20T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4659.915,
        "D_prior_index": 12,
        "H4_prior_index": 72,
        "H1_prior_index": 276,
        "pre_local_high": 4672.31,
        "confirmation_time": "2026-01-20T01:30:00Z",
        "impulse_extreme": 4674.505,
        "fib50": 4667.21,
        "fib62": 4665.459,
        "entry_mid": 4666.335,
        "invalid": 4659.915,
        "risk_points": 6.42,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-20T01:55:00Z",
        "target1": 4672.754,
        "target2": 4679.174,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4665.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4673.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-20T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4666.165,
        "D_prior_index": 12,
        "H4_prior_index": 73,
        "H1_prior_index": 278,
        "pre_local_high": 4676.235,
        "confirmation_time": "2026-01-20T03:40:00Z",
        "impulse_extreme": 4679.19,
        "fib50": 4672.677,
        "fib62": 4671.114,
        "entry_mid": 4671.896,
        "invalid": 4666.165,
        "risk_points": 5.731,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4682.61,
        "D_prior_index": 12,
        "H4_prior_index": 73,
        "H1_prior_index": 279,
        "pre_local_low": 4666.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-20T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.315,
        "D_prior_index": 12,
        "H4_prior_index": 73,
        "H1_prior_index": 280,
        "pre_local_high": 4705.505,
        "confirmation_time": "2026-01-20T05:45:00Z",
        "impulse_extreme": 4707.9,
        "fib50": 4701.108,
        "fib62": 4699.477,
        "entry_mid": 4700.292,
        "invalid": 4694.315,
        "risk_points": 5.977,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4717.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4722.845,
        "D_prior_index": 12,
        "H4_prior_index": 74,
        "H1_prior_index": 282,
        "pre_local_low": 4705.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4731.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T09:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4721.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4737.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.075,
        "D_prior_index": 12,
        "H4_prior_index": 75,
        "H1_prior_index": 285,
        "pre_local_high": 4737.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-20T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4721.64,
        "D_prior_index": 12,
        "H4_prior_index": 75,
        "H1_prior_index": 286,
        "pre_local_high": 4737.57,
        "confirmation_time": "2026-01-20T14:00:00Z",
        "impulse_extreme": 4748.705,
        "fib50": 4735.173,
        "fib62": 4731.925,
        "entry_mid": 4733.549,
        "invalid": 4721.64,
        "risk_points": 11.909,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-20T14:05:00Z",
        "target1": 4745.457,
        "target2": 4757.366,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-20T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4724.08,
        "D_prior_index": 12,
        "H4_prior_index": 75,
        "H1_prior_index": 287,
        "pre_local_high": 4735.465,
        "confirmation_time": "2026-01-20T13:55:00Z",
        "impulse_extreme": 4738.54,
        "fib50": 4731.31,
        "fib62": 4729.575,
        "entry_mid": 4730.442,
        "invalid": 4724.08,
        "risk_points": 6.362,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-20T14:30:00Z",
        "target1": 4736.805,
        "target2": 4743.167,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-20T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4715.035,
        "D_prior_index": 12,
        "H4_prior_index": 75,
        "H1_prior_index": 288,
        "pre_local_high": 4735.465,
        "confirmation_time": "2026-01-20T13:55:00Z",
        "impulse_extreme": 4738.54,
        "fib50": 4726.788,
        "fib62": 4723.967,
        "entry_mid": 4725.377,
        "invalid": 4715.035,
        "risk_points": 10.342,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-20T15:25:00Z",
        "target1": 4735.719,
        "target2": 4746.062,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4751.37,
        "D_prior_index": 12,
        "H4_prior_index": 76,
        "H1_prior_index": 289,
        "pre_local_low": 4715.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4728.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4744.35,
        "D_prior_index": 12,
        "H4_prior_index": 76,
        "H1_prior_index": 291,
        "pre_local_low": 4722.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4758.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4766.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4752.785,
        "D_prior_index": 12,
        "H4_prior_index": 77,
        "H1_prior_index": 293,
        "pre_local_high": 4766.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4766.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-20T19:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4756.87,
        "D_prior_index": 12,
        "H4_prior_index": 77,
        "H1_prior_index": 294,
        "pre_local_high": 4766.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4755.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-20T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-20T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4761.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4770.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4779.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4787.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4837.055,
        "D_prior_index": 13,
        "H4_prior_index": 78,
        "H1_prior_index": 299,
        "pre_local_low": 4770.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T01:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4844.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4817.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4849.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4847.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4837.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4859.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4878.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4864.395,
        "D_prior_index": 13,
        "H4_prior_index": 80,
        "H1_prior_index": 304,
        "pre_local_high": 4878.25,
        "confirmation_time": "2026-01-21T06:20:00Z",
        "impulse_extreme": 4880.495,
        "fib50": 4872.445,
        "fib62": 4870.513,
        "entry_mid": 4871.479,
        "invalid": 4864.395,
        "risk_points": 7.084,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T06:35:00Z",
        "target1": 4878.563,
        "target2": 4885.647,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4832.725,
        "D_prior_index": 13,
        "H4_prior_index": 80,
        "H1_prior_index": 305,
        "pre_local_high": 4888.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T07:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4850.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4851.985,
        "D_prior_index": 13,
        "H4_prior_index": 80,
        "H1_prior_index": 305,
        "pre_local_low": 4832.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4877.335,
        "D_prior_index": 13,
        "H4_prior_index": 80,
        "H1_prior_index": 307,
        "pre_local_low": 4849.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4866.83,
        "D_prior_index": 13,
        "H4_prior_index": 81,
        "H1_prior_index": 308,
        "pre_local_low": 4857.97,
        "confirmation_time": "2026-01-21T12:15:00Z",
        "impulse_extreme": 4855.52,
        "fib50": 4861.175,
        "fib62": 4862.532,
        "entry_mid": 4861.854,
        "invalid": 4866.83,
        "risk_points": 4.976,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T12:20:00Z",
        "target1": 4856.877,
        "target2": 4851.901,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4860.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-21T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4855.19,
        "D_prior_index": 13,
        "H4_prior_index": 81,
        "H1_prior_index": 309,
        "pre_local_high": 4871.605,
        "confirmation_time": "2026-01-21T13:30:00Z",
        "impulse_extreme": 4872.085,
        "fib50": 4863.637,
        "fib62": 4861.61,
        "entry_mid": 4862.624,
        "invalid": 4855.19,
        "risk_points": 7.434,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4867.575,
        "D_prior_index": 13,
        "H4_prior_index": 81,
        "H1_prior_index": 310,
        "pre_local_low": 4855.19,
        "confirmation_time": "2026-01-21T14:00:00Z",
        "impulse_extreme": 4851.99,
        "fib50": 4859.782,
        "fib62": 4861.653,
        "entry_mid": 4860.718,
        "invalid": 4867.575,
        "risk_points": 6.857,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T14:05:00Z",
        "target1": 4853.86,
        "target2": 4847.003,
        "mechanical_outcome": "ambiguous_same_bar"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4855.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4856.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4871.57,
        "D_prior_index": 13,
        "H4_prior_index": 81,
        "H1_prior_index": 311,
        "pre_local_low": 4855.19,
        "confirmation_time": "2026-01-21T14:00:00Z",
        "impulse_extreme": 4851.99,
        "fib50": 4861.78,
        "fib62": 4864.13,
        "entry_mid": 4862.955,
        "invalid": 4871.57,
        "risk_points": 8.615,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T14:05:00Z",
        "target1": 4854.34,
        "target2": 4845.724,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T14:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4880.935,
        "D_prior_index": 13,
        "H4_prior_index": 82,
        "H1_prior_index": 312,
        "pre_local_low": 4851.99,
        "confirmation_time": "2026-01-21T14:10:00Z",
        "impulse_extreme": 4839.395,
        "fib50": 4860.165,
        "fib62": 4865.15,
        "entry_mid": 4862.657,
        "invalid": 4880.935,
        "risk_points": 18.278,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T14:25:00Z",
        "target1": 4844.38,
        "target2": 4826.102,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4872.525,
        "D_prior_index": 13,
        "H4_prior_index": 82,
        "H1_prior_index": 312,
        "pre_local_low": 4839.395,
        "confirmation_time": "2026-01-21T15:15:00Z",
        "impulse_extreme": 4828.225,
        "fib50": 4850.375,
        "fib62": 4855.691,
        "entry_mid": 4853.033,
        "invalid": 4872.525,
        "risk_points": 19.492,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T15:50:00Z",
        "target1": 4833.541,
        "target2": 4814.049,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4846.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4868.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4855.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4814.515,
        "D_prior_index": 13,
        "H4_prior_index": 82,
        "H1_prior_index": 315,
        "pre_local_high": 4855.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4831.91,
        "D_prior_index": 13,
        "H4_prior_index": 83,
        "H1_prior_index": 316,
        "pre_local_low": 4802.62,
        "confirmation_time": "2026-01-21T19:35:00Z",
        "impulse_extreme": 4772.785,
        "fib50": 4802.347,
        "fib62": 4809.443,
        "entry_mid": 4805.895,
        "invalid": 4831.91,
        "risk_points": 26.015,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T20:30:00Z",
        "target1": 4779.88,
        "target2": 4753.865,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4819.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-21T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4850.985,
        "D_prior_index": 13,
        "H4_prior_index": 83,
        "H1_prior_index": 317,
        "pre_local_low": 4802.62,
        "confirmation_time": "2026-01-21T19:35:00Z",
        "impulse_extreme": 4772.785,
        "fib50": 4811.885,
        "fib62": 4821.269,
        "entry_mid": 4816.577,
        "invalid": 4850.985,
        "risk_points": 34.408,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-21T20:30:00Z",
        "target1": 4782.169,
        "target2": 4747.761,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T19:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4854.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4755.075,
        "D_prior_index": 13,
        "H4_prior_index": 83,
        "H1_prior_index": 317,
        "pre_local_high": 4854.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4813.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-21T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4839.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-21T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-21T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4839.9,
        "D_prior_index": 13,
        "H4_prior_index": 83,
        "H1_prior_index": 319,
        "pre_local_low": 4772.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4772.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4809.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4804.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4786.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-22T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4790.235,
        "D_prior_index": 14,
        "H4_prior_index": 85,
        "H1_prior_index": 324,
        "pre_local_high": 4796.185,
        "confirmation_time": "2026-01-22T03:55:00Z",
        "impulse_extreme": 4796.855,
        "fib50": 4793.545,
        "fib62": 4792.751,
        "entry_mid": 4793.148,
        "invalid": 4790.235,
        "risk_points": 2.913,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4793.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-22T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4793.705,
        "D_prior_index": 14,
        "H4_prior_index": 85,
        "H1_prior_index": 326,
        "pre_local_high": 4800.925,
        "confirmation_time": "2026-01-22T05:45:00Z",
        "impulse_extreme": 4807.825,
        "fib50": 4800.765,
        "fib62": 4799.071,
        "entry_mid": 4799.918,
        "invalid": 4793.705,
        "risk_points": 6.213,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4821.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-22T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4839.71,
        "D_prior_index": 14,
        "H4_prior_index": 86,
        "H1_prior_index": 328,
        "pre_local_low": 4807.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4822.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4831.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-22T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4824.46,
        "D_prior_index": 14,
        "H4_prior_index": 87,
        "H1_prior_index": 332,
        "pre_local_high": 4831.97,
        "confirmation_time": "2026-01-22T11:45:00Z",
        "impulse_extreme": 4834.875,
        "fib50": 4829.667,
        "fib62": 4828.418,
        "entry_mid": 4829.043,
        "invalid": 4824.46,
        "risk_points": 4.583,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4836.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-22T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4832.62,
        "D_prior_index": 14,
        "H4_prior_index": 87,
        "H1_prior_index": 333,
        "pre_local_low": 4823.365,
        "confirmation_time": "2026-01-22T12:55:00Z",
        "impulse_extreme": 4818.785,
        "fib50": 4825.702,
        "fib62": 4827.363,
        "entry_mid": 4826.533,
        "invalid": 4832.62,
        "risk_points": 6.087,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-22T13:10:00Z",
        "target1": 4820.445,
        "target2": 4814.358,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-22T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4815.805,
        "D_prior_index": 14,
        "H4_prior_index": 87,
        "H1_prior_index": 334,
        "pre_local_high": 4836.43,
        "confirmation_time": "2026-01-22T14:30:00Z",
        "impulse_extreme": 4847.845,
        "fib50": 4831.825,
        "fib62": 4827.98,
        "entry_mid": 4829.903,
        "invalid": 4815.805,
        "risk_points": 14.098,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-22T15:00:00Z",
        "target1": 4844.0,
        "target2": 4858.098,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-22T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4810.74,
        "D_prior_index": 14,
        "H4_prior_index": 87,
        "H1_prior_index": 334,
        "pre_local_high": 4835.46,
        "confirmation_time": "2026-01-22T14:30:00Z",
        "impulse_extreme": 4847.845,
        "fib50": 4829.292,
        "fib62": 4824.84,
        "entry_mid": 4827.066,
        "invalid": 4810.74,
        "risk_points": 16.326,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-22T15:00:00Z",
        "target1": 4843.392,
        "target2": 4859.719,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-22T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4876.43,
        "D_prior_index": 14,
        "H4_prior_index": 88,
        "H1_prior_index": 337,
        "pre_local_low": 4823.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4880.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4885.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-22T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4869.58,
        "D_prior_index": 14,
        "H4_prior_index": 88,
        "H1_prior_index": 338,
        "pre_local_high": 4885.46,
        "confirmation_time": "2026-01-22T17:20:00Z",
        "impulse_extreme": 4891.91,
        "fib50": 4880.745,
        "fib62": 4878.065,
        "entry_mid": 4879.405,
        "invalid": 4869.58,
        "risk_points": 9.825,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4915.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-22T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4928.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-22T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-22T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4940.885,
        "D_prior_index": 14,
        "H4_prior_index": 89,
        "H1_prior_index": 342,
        "pre_local_low": 4914.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4963.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-23T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4947.935,
        "D_prior_index": 15,
        "H4_prior_index": 90,
        "H1_prior_index": 344,
        "pre_local_high": 4963.395,
        "confirmation_time": "2026-01-23T00:55:00Z",
        "impulse_extreme": 4965.985,
        "fib50": 4956.96,
        "fib62": 4954.794,
        "entry_mid": 4955.877,
        "invalid": 4947.935,
        "risk_points": 7.942,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-23T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4947.58,
        "D_prior_index": 15,
        "H4_prior_index": 90,
        "H1_prior_index": 344,
        "pre_local_high": 4963.395,
        "confirmation_time": "2026-01-23T00:55:00Z",
        "impulse_extreme": 4965.985,
        "fib50": 4956.782,
        "fib62": 4954.574,
        "entry_mid": 4955.678,
        "invalid": 4947.58,
        "risk_points": 8.098,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4967.52,
        "D_prior_index": 15,
        "H4_prior_index": 90,
        "H1_prior_index": 345,
        "pre_local_low": 4930.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4956.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4963.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4946.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4962.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4954.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4950.26,
        "D_prior_index": 15,
        "H4_prior_index": 91,
        "H1_prior_index": 348,
        "pre_local_high": 4962.47,
        "confirmation_time": "2026-01-23T05:45:00Z",
        "impulse_extreme": 4966.74,
        "fib50": 4958.5,
        "fib62": 4956.522,
        "entry_mid": 4957.511,
        "invalid": 4950.26,
        "risk_points": 7.251,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T06:00:00Z",
        "target1": 4964.762,
        "target2": 4972.014,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4958.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4954.615,
        "D_prior_index": 15,
        "H4_prior_index": 91,
        "H1_prior_index": 349,
        "pre_local_high": 4958.585,
        "confirmation_time": "2026-01-23T05:35:00Z",
        "impulse_extreme": 4959.575,
        "fib50": 4957.095,
        "fib62": 4956.5,
        "entry_mid": 4956.797,
        "invalid": 4954.615,
        "risk_points": 2.182,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T06:00:00Z",
        "target1": 4958.98,
        "target2": 4961.162,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4960.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4967.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4950.075,
        "D_prior_index": 15,
        "H4_prior_index": 92,
        "H1_prior_index": 350,
        "pre_local_high": 4967.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4956.39,
        "D_prior_index": 15,
        "H4_prior_index": 92,
        "H1_prior_index": 350,
        "pre_local_low": 4945.575,
        "confirmation_time": "2026-01-23T07:45:00Z",
        "impulse_extreme": 4943.235,
        "fib50": 4949.812,
        "fib62": 4951.391,
        "entry_mid": 4950.602,
        "invalid": 4956.39,
        "risk_points": 5.788,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T07:50:00Z",
        "target1": 4944.814,
        "target2": 4939.025,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4958.21,
        "D_prior_index": 15,
        "H4_prior_index": 92,
        "H1_prior_index": 351,
        "pre_local_low": 4945.575,
        "confirmation_time": "2026-01-23T07:45:00Z",
        "impulse_extreme": 4943.235,
        "fib50": 4950.722,
        "fib62": 4952.52,
        "entry_mid": 4951.621,
        "invalid": 4958.21,
        "risk_points": 6.589,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T07:50:00Z",
        "target1": 4945.032,
        "target2": 4938.443,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4951.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4959.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T08:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4908.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4922.84,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 354,
        "pre_local_low": 4899.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-23T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4924.62,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 354,
        "pre_local_high": 4932.56,
        "confirmation_time": "2026-01-23T12:05:00Z",
        "impulse_extreme": 4934.345,
        "fib50": 4929.483,
        "fib62": 4928.315,
        "entry_mid": 4928.899,
        "invalid": 4924.62,
        "risk_points": 4.279,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4930.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4912.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4926.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4918.49,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 356,
        "pre_local_high": 4932.56,
        "confirmation_time": "2026-01-23T12:05:00Z",
        "impulse_extreme": 4934.345,
        "fib50": 4926.417,
        "fib62": 4924.515,
        "entry_mid": 4925.466,
        "invalid": 4918.49,
        "risk_points": 6.976,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T13:20:00Z",
        "target1": 4932.442,
        "target2": 4939.419,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4937.17,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 356,
        "pre_local_low": 4912.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4939.175,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 356,
        "pre_local_low": 4912.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4933.58,
        "D_prior_index": 15,
        "H4_prior_index": 93,
        "H1_prior_index": 357,
        "pre_local_high": 4944.945,
        "confirmation_time": "2026-01-23T14:40:00Z",
        "impulse_extreme": 4949.89,
        "fib50": 4941.735,
        "fib62": 4939.778,
        "entry_mid": 4940.756,
        "invalid": 4933.58,
        "risk_points": 7.176,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T15:00:00Z",
        "target1": 4947.933,
        "target2": 4955.109,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4947.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T13:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4941.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4932.89,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 358,
        "pre_local_high": 4948.005,
        "confirmation_time": "2026-01-23T14:45:00Z",
        "impulse_extreme": 4955.85,
        "fib50": 4944.37,
        "fib62": 4941.615,
        "entry_mid": 4942.992,
        "invalid": 4932.89,
        "risk_points": 10.102,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T14:55:00Z",
        "target1": 4953.095,
        "target2": 4963.197,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4956.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-23T15:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4938.405,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 359,
        "pre_local_high": 4956.645,
        "confirmation_time": "2026-01-23T15:40:00Z",
        "impulse_extreme": 4961.055,
        "fib50": 4949.73,
        "fib62": 4947.012,
        "entry_mid": 4948.371,
        "invalid": 4938.405,
        "risk_points": 9.966,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4963.475,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 359,
        "pre_local_low": 4932.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4988.44,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 360,
        "pre_local_low": 4938.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4975.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4987.92,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 361,
        "pre_local_low": 4947.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4988.16,
        "D_prior_index": 15,
        "H4_prior_index": 94,
        "H1_prior_index": 361,
        "pre_local_low": 4951.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-23T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4984.205,
        "D_prior_index": 15,
        "H4_prior_index": 95,
        "H1_prior_index": 362,
        "pre_local_low": 4962.005,
        "confirmation_time": "2026-01-23T18:45:00Z",
        "impulse_extreme": 4958.345,
        "fib50": 4971.275,
        "fib62": 4974.378,
        "entry_mid": 4972.827,
        "invalid": 4984.205,
        "risk_points": 11.378,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-23T19:00:00Z",
        "target1": 4961.448,
        "target2": 4950.07,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4958.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4980.425,
        "D_prior_index": 15,
        "H4_prior_index": 95,
        "H1_prior_index": 363,
        "pre_local_low": 4958.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4970.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4975.745,
        "D_prior_index": 15,
        "H4_prior_index": 95,
        "H1_prior_index": 364,
        "pre_local_high": 4989.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-23T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4986.125,
        "D_prior_index": 15,
        "H4_prior_index": 95,
        "H1_prior_index": 365,
        "pre_local_low": 4970.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-23T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-23T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4978.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-25T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-25T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-25T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-25T23:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5032.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5044.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5092.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5072.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5082.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T06:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5111.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T07:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5097.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5098.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5098.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5091.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5078.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5092.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-26T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5087.31,
        "D_prior_index": 16,
        "H4_prior_index": 99,
        "H1_prior_index": 379,
        "pre_local_high": 5093.775,
        "confirmation_time": "2026-01-26T12:20:00Z",
        "impulse_extreme": 5097.1,
        "fib50": 5092.205,
        "fib62": 5091.03,
        "entry_mid": 5091.618,
        "invalid": 5087.31,
        "risk_points": 4.308,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-26T12:25:00Z",
        "target1": 5095.925,
        "target2": 5100.233,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5093.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5086.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5097.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5066.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-26T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5083.195,
        "D_prior_index": 16,
        "H4_prior_index": 99,
        "H1_prior_index": 380,
        "pre_local_low": 5066.24,
        "confirmation_time": "2026-01-26T13:30:00Z",
        "impulse_extreme": 5054.67,
        "fib50": 5068.932,
        "fib62": 5072.355,
        "entry_mid": 5070.644,
        "invalid": 5083.195,
        "risk_points": 12.551,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-26T13:40:00Z",
        "target1": 5058.093,
        "target2": 5045.542,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5054.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-26T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.23,
        "D_prior_index": 16,
        "H4_prior_index": 99,
        "H1_prior_index": 380,
        "pre_local_low": 5054.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5058.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5090.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-26T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5097.46,
        "D_prior_index": 16,
        "H4_prior_index": 100,
        "H1_prior_index": 382,
        "pre_local_low": 5054.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5084.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T15:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5095.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-26T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5065.385,
        "D_prior_index": 16,
        "H4_prior_index": 100,
        "H1_prior_index": 383,
        "pre_local_high": 5105.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5097.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5080.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-26T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5105.15,
        "D_prior_index": 16,
        "H4_prior_index": 100,
        "H1_prior_index": 384,
        "pre_local_low": 5065.385,
        "confirmation_time": "2026-01-26T18:40:00Z",
        "impulse_extreme": 5057.935,
        "fib50": 5081.542,
        "fib62": 5087.208,
        "entry_mid": 5084.375,
        "invalid": 5105.15,
        "risk_points": 20.775,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-26T18:50:00Z",
        "target1": 5063.601,
        "target2": 5042.826,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-26T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5035.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-26T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5062.32,
        "D_prior_index": 16,
        "H4_prior_index": 101,
        "H1_prior_index": 387,
        "pre_local_low": 5008.275,
        "confirmation_time": "2026-01-26T21:35:00Z",
        "impulse_extreme": 4990.215,
        "fib50": 5026.267,
        "fib62": 5034.92,
        "entry_mid": 5030.594,
        "invalid": 5062.32,
        "risk_points": 31.726,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-26T23:05:00Z",
        "target1": 4998.868,
        "target2": 4967.141,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-26T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-26T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5061.675,
        "D_prior_index": 17,
        "H4_prior_index": 102,
        "H1_prior_index": 389,
        "pre_local_low": 4990.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5038.745,
        "D_prior_index": 17,
        "H4_prior_index": 102,
        "H1_prior_index": 390,
        "pre_local_high": 5061.675,
        "confirmation_time": "2026-01-27T01:10:00Z",
        "impulse_extreme": 5071.37,
        "fib50": 5055.057,
        "fib62": 5051.142,
        "entry_mid": 5053.1,
        "invalid": 5038.745,
        "risk_points": 14.355,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T01:40:00Z",
        "target1": 5067.455,
        "target2": 5081.81,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5054.135,
        "D_prior_index": 17,
        "H4_prior_index": 102,
        "H1_prior_index": 390,
        "pre_local_low": 4990.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5013.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.14,
        "D_prior_index": 17,
        "H4_prior_index": 102,
        "H1_prior_index": 391,
        "pre_local_low": 5013.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5054.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5049.585,
        "D_prior_index": 17,
        "H4_prior_index": 103,
        "H1_prior_index": 392,
        "pre_local_high": 5076.14,
        "confirmation_time": "2026-01-27T02:40:00Z",
        "impulse_extreme": 5079.81,
        "fib50": 5064.698,
        "fib62": 5061.07,
        "entry_mid": 5062.884,
        "invalid": 5049.585,
        "risk_points": 13.299,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T03:05:00Z",
        "target1": 5076.183,
        "target2": 5089.482,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5067.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5065.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5063.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-27T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5060.16,
        "D_prior_index": 17,
        "H4_prior_index": 103,
        "H1_prior_index": 393,
        "pre_local_high": 5079.81,
        "confirmation_time": "2026-01-27T05:45:00Z",
        "impulse_extreme": 5082.37,
        "fib50": 5071.265,
        "fib62": 5068.6,
        "entry_mid": 5069.932,
        "invalid": 5060.16,
        "risk_points": 9.772,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5057.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5078.775,
        "D_prior_index": 17,
        "H4_prior_index": 104,
        "H1_prior_index": 396,
        "pre_local_high": 5087.5,
        "confirmation_time": "2026-01-27T06:45:00Z",
        "impulse_extreme": 5093.66,
        "fib50": 5086.217,
        "fib62": 5084.431,
        "entry_mid": 5085.324,
        "invalid": 5078.775,
        "risk_points": 6.549,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T06:55:00Z",
        "target1": 5091.874,
        "target2": 5098.423,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5088.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5081.58,
        "D_prior_index": 17,
        "H4_prior_index": 104,
        "H1_prior_index": 397,
        "pre_local_high": 5094.59,
        "confirmation_time": "2026-01-27T07:30:00Z",
        "impulse_extreme": 5097.695,
        "fib50": 5089.637,
        "fib62": 5087.704,
        "entry_mid": 5088.671,
        "invalid": 5081.58,
        "risk_points": 7.091,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T07:50:00Z",
        "target1": 5095.761,
        "target2": 5102.852,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5079.25,
        "D_prior_index": 17,
        "H4_prior_index": 104,
        "H1_prior_index": 398,
        "pre_local_high": 5100.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T08:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.51,
        "D_prior_index": 17,
        "H4_prior_index": 104,
        "H1_prior_index": 398,
        "pre_local_high": 5100.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5085.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T09:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5082.78,
        "D_prior_index": 17,
        "H4_prior_index": 104,
        "H1_prior_index": 399,
        "pre_local_high": 5094.4,
        "confirmation_time": "2026-01-27T09:50:00Z",
        "impulse_extreme": 5097.64,
        "fib50": 5090.21,
        "fib62": 5088.427,
        "entry_mid": 5089.318,
        "invalid": 5082.78,
        "risk_points": 6.538,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T10:20:00Z",
        "target1": 5095.857,
        "target2": 5102.395,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5090.83,
        "D_prior_index": 17,
        "H4_prior_index": 105,
        "H1_prior_index": 401,
        "pre_local_low": 5081.99,
        "confirmation_time": "2026-01-27T11:45:00Z",
        "impulse_extreme": 5074.68,
        "fib50": 5082.755,
        "fib62": 5084.693,
        "entry_mid": 5083.724,
        "invalid": 5090.83,
        "risk_points": 7.106,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T12:05:00Z",
        "target1": 5076.618,
        "target2": 5069.512,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5073.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5091.37,
        "D_prior_index": 17,
        "H4_prior_index": 105,
        "H1_prior_index": 402,
        "pre_local_low": 5066.64,
        "confirmation_time": "2026-01-27T14:10:00Z",
        "impulse_extreme": 5055.365,
        "fib50": 5073.368,
        "fib62": 5077.688,
        "entry_mid": 5075.528,
        "invalid": 5091.37,
        "risk_points": 15.842,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T14:35:00Z",
        "target1": 5059.686,
        "target2": 5043.843,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5078.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5092.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T13:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5076.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5093.145,
        "D_prior_index": 17,
        "H4_prior_index": 105,
        "H1_prior_index": 403,
        "pre_local_low": 5066.64,
        "confirmation_time": "2026-01-27T14:10:00Z",
        "impulse_extreme": 5055.365,
        "fib50": 5074.255,
        "fib62": 5078.789,
        "entry_mid": 5076.522,
        "invalid": 5093.145,
        "risk_points": 16.623,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-27T14:35:00Z",
        "target1": 5059.899,
        "target2": 5043.275,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5046.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-27T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5047.69,
        "D_prior_index": 17,
        "H4_prior_index": 106,
        "H1_prior_index": 405,
        "pre_local_high": 5089.67,
        "confirmation_time": "2026-01-27T15:55:00Z",
        "impulse_extreme": 5091.32,
        "fib50": 5069.505,
        "fib62": 5064.269,
        "entry_mid": 5066.887,
        "invalid": 5047.69,
        "risk_points": 19.197,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5077.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5103.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-27T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5080.21,
        "D_prior_index": 17,
        "H4_prior_index": 106,
        "H1_prior_index": 407,
        "pre_local_high": 5103.355,
        "confirmation_time": "2026-01-27T20:00:00Z",
        "impulse_extreme": 5120.715,
        "fib50": 5100.462,
        "fib62": 5095.602,
        "entry_mid": 5098.032,
        "invalid": 5080.21,
        "risk_points": 17.822,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5091.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5079.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5094.155,
        "D_prior_index": 17,
        "H4_prior_index": 106,
        "H1_prior_index": 407,
        "pre_local_low": 5077.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5078.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-27T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.92,
        "D_prior_index": 17,
        "H4_prior_index": 106,
        "H1_prior_index": 407,
        "pre_local_high": 5103.355,
        "confirmation_time": "2026-01-27T20:00:00Z",
        "impulse_extreme": 5120.715,
        "fib50": 5098.818,
        "fib62": 5093.562,
        "entry_mid": 5096.19,
        "invalid": 5076.92,
        "risk_points": 19.27,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5076.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5087.52,
        "D_prior_index": 17,
        "H4_prior_index": 107,
        "H1_prior_index": 408,
        "pre_local_low": 5076.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5088.95,
        "D_prior_index": 17,
        "H4_prior_index": 107,
        "H1_prior_index": 408,
        "pre_local_low": 5076.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5092.07,
        "D_prior_index": 17,
        "H4_prior_index": 107,
        "H1_prior_index": 408,
        "pre_local_low": 5076.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5095.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5090.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5151.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-27T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.645,
        "D_prior_index": 17,
        "H4_prior_index": 107,
        "H1_prior_index": 411,
        "pre_local_low": 5086.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5169.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-27T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5159.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-27T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-27T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.975,
        "D_prior_index": 18,
        "H4_prior_index": 108,
        "H1_prior_index": 412,
        "pre_local_high": 5190.51,
        "confirmation_time": "2026-01-28T01:05:00Z",
        "impulse_extreme": 5202.86,
        "fib50": 5183.417,
        "fib62": 5178.751,
        "entry_mid": 5181.084,
        "invalid": 5163.975,
        "risk_points": 17.109,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-28T01:10:00Z",
        "target1": 5198.194,
        "target2": 5215.303,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5157.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5225.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5201.745,
        "D_prior_index": 18,
        "H4_prior_index": 109,
        "H1_prior_index": 415,
        "pre_local_high": 5225.36,
        "confirmation_time": "2026-01-28T02:45:00Z",
        "impulse_extreme": 5229.775,
        "fib50": 5215.76,
        "fib62": 5212.396,
        "entry_mid": 5214.078,
        "invalid": 5201.745,
        "risk_points": 12.333,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5244.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5232.5,
        "D_prior_index": 18,
        "H4_prior_index": 109,
        "H1_prior_index": 417,
        "pre_local_high": 5247.82,
        "confirmation_time": "2026-01-28T05:00:00Z",
        "impulse_extreme": 5249.075,
        "fib50": 5240.788,
        "fib62": 5238.798,
        "entry_mid": 5239.793,
        "invalid": 5232.5,
        "risk_points": 7.293,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5241.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5241.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5233.455,
        "D_prior_index": 18,
        "H4_prior_index": 109,
        "H1_prior_index": 417,
        "pre_local_high": 5247.82,
        "confirmation_time": "2026-01-28T05:00:00Z",
        "impulse_extreme": 5249.075,
        "fib50": 5241.265,
        "fib62": 5239.391,
        "entry_mid": 5240.328,
        "invalid": 5233.455,
        "risk_points": 6.873,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-28T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5251.165,
        "D_prior_index": 18,
        "H4_prior_index": 109,
        "H1_prior_index": 418,
        "pre_local_high": 5262.48,
        "confirmation_time": "2026-01-28T05:40:00Z",
        "impulse_extreme": 5266.305,
        "fib50": 5258.735,
        "fib62": 5256.918,
        "entry_mid": 5257.827,
        "invalid": 5251.165,
        "risk_points": 6.662,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-28T05:50:00Z",
        "target1": 5264.488,
        "target2": 5271.15,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5266.435,
        "D_prior_index": 18,
        "H4_prior_index": 109,
        "H1_prior_index": 418,
        "pre_local_low": 5232.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5252.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5251.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T06:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5266.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-28T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5271.955,
        "D_prior_index": 18,
        "H4_prior_index": 110,
        "H1_prior_index": 420,
        "pre_local_high": 5285.885,
        "confirmation_time": "2026-01-28T07:45:00Z",
        "impulse_extreme": 5289.08,
        "fib50": 5280.517,
        "fib62": 5278.462,
        "entry_mid": 5279.49,
        "invalid": 5271.955,
        "risk_points": 7.535,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-28T09:10:00Z",
        "target1": 5287.025,
        "target2": 5294.56,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5285.885,
        "D_prior_index": 18,
        "H4_prior_index": 110,
        "H1_prior_index": 420,
        "pre_local_low": 5251.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5301.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5311.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5280.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T09:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5280.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-28T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5297.76,
        "D_prior_index": 18,
        "H4_prior_index": 110,
        "H1_prior_index": 422,
        "pre_local_low": 5271.955,
        "confirmation_time": "2026-01-28T09:20:00Z",
        "impulse_extreme": 5268.62,
        "fib50": 5283.19,
        "fib62": 5286.687,
        "entry_mid": 5284.938,
        "invalid": 5297.76,
        "risk_points": 12.822,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-28T10:10:00Z",
        "target1": 5272.117,
        "target2": 5259.295,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5280.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5262.62,
        "D_prior_index": 18,
        "H4_prior_index": 111,
        "H1_prior_index": 424,
        "pre_local_low": 5238.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5267.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5251.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5269.045,
        "D_prior_index": 18,
        "H4_prior_index": 111,
        "H1_prior_index": 425,
        "pre_local_low": 5238.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5289.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5257.015,
        "D_prior_index": 18,
        "H4_prior_index": 111,
        "H1_prior_index": 426,
        "pre_local_high": 5289.71,
        "confirmation_time": "2026-01-28T15:00:00Z",
        "impulse_extreme": 5298.35,
        "fib50": 5277.683,
        "fib62": 5272.722,
        "entry_mid": 5275.202,
        "invalid": 5257.015,
        "risk_points": 18.187,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5248.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-28T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5270.35,
        "D_prior_index": 18,
        "H4_prior_index": 112,
        "H1_prior_index": 427,
        "pre_local_low": 5257.015,
        "confirmation_time": "2026-01-28T15:05:00Z",
        "impulse_extreme": 5235.75,
        "fib50": 5253.05,
        "fib62": 5257.202,
        "entry_mid": 5255.126,
        "invalid": 5270.35,
        "risk_points": 15.224,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-28T15:10:00Z",
        "target1": 5239.902,
        "target2": 5224.678,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5271.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5250.29,
        "D_prior_index": 18,
        "H4_prior_index": 112,
        "H1_prior_index": 427,
        "pre_local_high": 5289.71,
        "confirmation_time": "2026-01-28T15:00:00Z",
        "impulse_extreme": 5298.35,
        "fib50": 5274.32,
        "fib62": 5268.553,
        "entry_mid": 5271.436,
        "invalid": 5250.29,
        "risk_points": 21.146,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T15:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5298.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5293.21,
        "D_prior_index": 18,
        "H4_prior_index": 112,
        "H1_prior_index": 429,
        "pre_local_low": 5235.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5276.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5307.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5288.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5304.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5305.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5325.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5269.295,
        "D_prior_index": 18,
        "H4_prior_index": 113,
        "H1_prior_index": 432,
        "pre_local_high": 5325.97,
        "confirmation_time": "2026-01-28T20:00:00Z",
        "impulse_extreme": 5336.955,
        "fib50": 5303.125,
        "fib62": 5295.006,
        "entry_mid": 5299.065,
        "invalid": 5269.295,
        "risk_points": 29.77,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5302.065,
        "D_prior_index": 18,
        "H4_prior_index": 113,
        "H1_prior_index": 432,
        "pre_local_low": 5268.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T19:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5280.86,
        "D_prior_index": 18,
        "H4_prior_index": 113,
        "H1_prior_index": 432,
        "pre_local_high": 5325.97,
        "confirmation_time": "2026-01-28T20:00:00Z",
        "impulse_extreme": 5336.955,
        "fib50": 5308.907,
        "fib62": 5302.176,
        "entry_mid": 5305.542,
        "invalid": 5280.86,
        "risk_points": 24.682,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5338.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-28T20:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5320.9,
        "D_prior_index": 18,
        "H4_prior_index": 113,
        "H1_prior_index": 433,
        "pre_local_high": 5338.96,
        "confirmation_time": "2026-01-28T20:25:00Z",
        "impulse_extreme": 5356.065,
        "fib50": 5338.483,
        "fib62": 5334.263,
        "entry_mid": 5336.373,
        "invalid": 5320.9,
        "risk_points": 15.473,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-28T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5391.62,
        "D_prior_index": 18,
        "H4_prior_index": 113,
        "H1_prior_index": 433,
        "pre_local_low": 5270.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5396.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-28T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-28T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5484.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5454.12,
        "D_prior_index": 19,
        "H4_prior_index": 114,
        "H1_prior_index": 436,
        "pre_local_high": 5602.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-29T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5526.57,
        "D_prior_index": 19,
        "H4_prior_index": 114,
        "H1_prior_index": 437,
        "pre_local_low": 5454.12,
        "confirmation_time": "2026-01-29T01:05:00Z",
        "impulse_extreme": 5444.925,
        "fib50": 5485.747,
        "fib62": 5495.545,
        "entry_mid": 5490.646,
        "invalid": 5526.57,
        "risk_points": 35.924,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-29T01:15:00Z",
        "target1": 5454.722,
        "target2": 5418.799,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5508.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5549.09,
        "D_prior_index": 19,
        "H4_prior_index": 115,
        "H1_prior_index": 439,
        "pre_local_low": 5486.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5519.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5552.425,
        "D_prior_index": 19,
        "H4_prior_index": 115,
        "H1_prior_index": 440,
        "pre_local_low": 5508.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-29T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5533.265,
        "D_prior_index": 19,
        "H4_prior_index": 115,
        "H1_prior_index": 440,
        "pre_local_high": 5552.425,
        "confirmation_time": "2026-01-29T04:30:00Z",
        "impulse_extreme": 5562.935,
        "fib50": 5548.1,
        "fib62": 5544.54,
        "entry_mid": 5546.32,
        "invalid": 5533.265,
        "risk_points": 13.055,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-29T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5549.895,
        "D_prior_index": 19,
        "H4_prior_index": 115,
        "H1_prior_index": 441,
        "pre_local_high": 5564.725,
        "confirmation_time": "2026-01-29T06:00:00Z",
        "impulse_extreme": 5585.44,
        "fib50": 5567.667,
        "fib62": 5563.402,
        "entry_mid": 5565.535,
        "invalid": 5549.895,
        "risk_points": 15.64,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-29T06:45:00Z",
        "target1": 5581.175,
        "target2": 5596.814,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5595.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-29T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5554.845,
        "D_prior_index": 19,
        "H4_prior_index": 116,
        "H1_prior_index": 444,
        "pre_local_low": 5531.925,
        "confirmation_time": "2026-01-29T08:05:00Z",
        "impulse_extreme": 5523.145,
        "fib50": 5538.995,
        "fib62": 5542.799,
        "entry_mid": 5540.897,
        "invalid": 5554.845,
        "risk_points": 13.948,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-29T08:10:00Z",
        "target1": 5526.949,
        "target2": 5513.001,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T08:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5473.555,
        "D_prior_index": 19,
        "H4_prior_index": 116,
        "H1_prior_index": 444,
        "pre_local_high": 5573.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5511.11,
        "D_prior_index": 19,
        "H4_prior_index": 116,
        "H1_prior_index": 445,
        "pre_local_high": 5543.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5502.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5525.835,
        "D_prior_index": 19,
        "H4_prior_index": 117,
        "H1_prior_index": 446,
        "pre_local_low": 5473.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5497.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5470.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5519.78,
        "D_prior_index": 19,
        "H4_prior_index": 117,
        "H1_prior_index": 447,
        "pre_local_low": 5470.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-29T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5526.395,
        "D_prior_index": 19,
        "H4_prior_index": 117,
        "H1_prior_index": 448,
        "pre_local_high": 5543.23,
        "confirmation_time": "2026-01-29T14:25:00Z",
        "impulse_extreme": 5549.565,
        "fib50": 5537.98,
        "fib62": 5535.2,
        "entry_mid": 5536.59,
        "invalid": 5526.395,
        "risk_points": 10.195,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-29T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5507.87,
        "D_prior_index": 19,
        "H4_prior_index": 117,
        "H1_prior_index": 449,
        "pre_local_high": 5543.23,
        "confirmation_time": "2026-01-29T14:25:00Z",
        "impulse_extreme": 5549.565,
        "fib50": 5528.717,
        "fib62": 5523.714,
        "entry_mid": 5526.216,
        "invalid": 5507.87,
        "risk_points": 18.346,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-29T14:30:00Z",
        "target1": 5544.562,
        "target2": 5562.907,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5499.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5530.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5501.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5311.67,
        "D_prior_index": 19,
        "H4_prior_index": 118,
        "H1_prior_index": 452,
        "pre_local_low": 5097.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5228.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5375.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5307.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-29T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5359.19,
        "D_prior_index": 19,
        "H4_prior_index": 119,
        "H1_prior_index": 454,
        "pre_local_low": 5228.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5360.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5362.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5290.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-29T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-29T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5447.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-30T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5451.16,
        "D_prior_index": 20,
        "H4_prior_index": 120,
        "H1_prior_index": 459,
        "pre_local_low": 5369.18,
        "confirmation_time": "2026-01-30T01:05:00Z",
        "impulse_extreme": 5365.385,
        "fib50": 5408.273,
        "fib62": 5418.565,
        "entry_mid": 5413.419,
        "invalid": 5451.16,
        "risk_points": 37.741,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5389.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5373.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5247.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5222.265,
        "D_prior_index": 20,
        "H4_prior_index": 121,
        "H1_prior_index": 462,
        "pre_local_low": 5112.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5231.515,
        "D_prior_index": 20,
        "H4_prior_index": 121,
        "H1_prior_index": 463,
        "pre_local_low": 5149.93,
        "confirmation_time": "2026-01-30T07:00:00Z",
        "impulse_extreme": 5124.26,
        "fib50": 5177.888,
        "fib62": 5190.758,
        "entry_mid": 5184.323,
        "invalid": 5231.515,
        "risk_points": 47.192,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T07:10:00Z",
        "target1": 5137.131,
        "target2": 5089.938,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5200.34,
        "D_prior_index": 20,
        "H4_prior_index": 121,
        "H1_prior_index": 463,
        "pre_local_high": 5231.515,
        "confirmation_time": "2026-01-30T05:15:00Z",
        "impulse_extreme": 5240.905,
        "fib50": 5220.622,
        "fib62": 5215.755,
        "entry_mid": 5218.189,
        "invalid": 5200.34,
        "risk_points": 17.849,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T05:30:00Z",
        "target1": 5236.037,
        "target2": 5253.886,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5212.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5173.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5152.22,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 465,
        "pre_local_high": 5241.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5144.87,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 465,
        "pre_local_high": 5241.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5124.26,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 466,
        "pre_local_high": 5241.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T08:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5140.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5133.32,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 467,
        "pre_local_high": 5186.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5133.05,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 468,
        "pre_local_low": 5054.43,
        "confirmation_time": "2026-01-30T09:10:00Z",
        "impulse_extreme": 5014.465,
        "fib50": 5073.757,
        "fib62": 5087.988,
        "entry_mid": 5080.873,
        "invalid": 5133.05,
        "risk_points": 52.177,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T10:25:00Z",
        "target1": 5028.695,
        "target2": 4976.518,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4941.5,
        "D_prior_index": 20,
        "H4_prior_index": 122,
        "H1_prior_index": 468,
        "pre_local_high": 5174.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5127.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5130.37,
        "D_prior_index": 20,
        "H4_prior_index": 123,
        "H1_prior_index": 470,
        "pre_local_low": 4941.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5138.075,
        "D_prior_index": 20,
        "H4_prior_index": 123,
        "H1_prior_index": 470,
        "pre_local_low": 4941.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5088.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5144.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5145.98,
        "D_prior_index": 20,
        "H4_prior_index": 123,
        "H1_prior_index": 471,
        "pre_local_low": 5047.895,
        "confirmation_time": "2026-01-30T13:20:00Z",
        "impulse_extreme": 5019.825,
        "fib50": 5082.903,
        "fib62": 5098.041,
        "entry_mid": 5090.472,
        "invalid": 5145.98,
        "risk_points": 55.508,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T14:20:00Z",
        "target1": 5034.964,
        "target2": 4979.455,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5103.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5054.055,
        "D_prior_index": 20,
        "H4_prior_index": 123,
        "H1_prior_index": 472,
        "pre_local_high": 5145.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.045,
        "D_prior_index": 20,
        "H4_prior_index": 123,
        "H1_prior_index": 472,
        "pre_local_high": 5145.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4992.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5088.085,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 473,
        "pre_local_low": 4992.555,
        "confirmation_time": "2026-01-30T15:00:00Z",
        "impulse_extreme": 4981.655,
        "fib50": 5034.87,
        "fib62": 5047.642,
        "entry_mid": 5041.256,
        "invalid": 5088.085,
        "risk_points": 46.829,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T15:10:00Z",
        "target1": 4994.427,
        "target2": 4947.597,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5113.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4980.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5060.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-01-30T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5074.065,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 474,
        "pre_local_low": 4980.8,
        "confirmation_time": "2026-01-30T16:35:00Z",
        "impulse_extreme": 4960.245,
        "fib50": 5017.155,
        "fib62": 5030.813,
        "entry_mid": 5023.984,
        "invalid": 5074.065,
        "risk_points": 50.081,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5038.13,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 474,
        "pre_local_high": 5113.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5074.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4960.245,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 475,
        "pre_local_high": 5097.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4943.18,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 475,
        "pre_local_high": 5074.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-01-30T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4898.995,
        "D_prior_index": 20,
        "H4_prior_index": 124,
        "H1_prior_index": 476,
        "pre_local_high": 5074.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4800.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T18:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4787.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T18:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4890.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4679.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4918.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-01-30T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4836.87,
        "D_prior_index": 20,
        "H4_prior_index": 125,
        "H1_prior_index": 478,
        "pre_local_high": 4918.27,
        "confirmation_time": "2026-01-30T19:40:00Z",
        "impulse_extreme": 4930.16,
        "fib50": 4883.515,
        "fib62": 4872.32,
        "entry_mid": 4877.918,
        "invalid": 4836.87,
        "risk_points": 41.048,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-01-30T20:00:00Z",
        "target1": 4918.965,
        "target2": 4960.013,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-01-30T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-01-30T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4807.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-01T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-01T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4697.14,
        "D_prior_index": 21,
        "H4_prior_index": 126,
        "H1_prior_index": 481,
        "pre_local_high": 4901.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4750.225,
        "D_prior_index": 21,
        "H4_prior_index": 126,
        "H1_prior_index": 483,
        "pre_local_low": 4584.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4696.825,
        "D_prior_index": 21,
        "H4_prior_index": 127,
        "H1_prior_index": 484,
        "pre_local_high": 4884.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4660.57,
        "D_prior_index": 21,
        "H4_prior_index": 127,
        "H1_prior_index": 485,
        "pre_local_high": 4773.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4603.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4657.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-02T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.375,
        "D_prior_index": 21,
        "H4_prior_index": 127,
        "H1_prior_index": 486,
        "pre_local_low": 4603.14,
        "confirmation_time": "2026-02-02T05:40:00Z",
        "impulse_extreme": 4573.17,
        "fib50": 4643.273,
        "fib62": 4660.097,
        "entry_mid": 4651.685,
        "invalid": 4713.375,
        "risk_points": 61.69,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-02T08:20:00Z",
        "target1": 4589.995,
        "target2": 4528.304,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4402.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4619.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4559.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-02T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4603.165,
        "D_prior_index": 21,
        "H4_prior_index": 128,
        "H1_prior_index": 491,
        "pre_local_high": 4651.5,
        "confirmation_time": "2026-02-02T09:25:00Z",
        "impulse_extreme": 4700.27,
        "fib50": 4651.718,
        "fib62": 4640.065,
        "entry_mid": 4645.891,
        "invalid": 4603.165,
        "risk_points": 42.726,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4657.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.115,
        "D_prior_index": 21,
        "H4_prior_index": 128,
        "H1_prior_index": 491,
        "pre_local_low": 4559.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.805,
        "D_prior_index": 21,
        "H4_prior_index": 129,
        "H1_prior_index": 492,
        "pre_local_low": 4603.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-02T10:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4657.01,
        "D_prior_index": 21,
        "H4_prior_index": 129,
        "H1_prior_index": 492,
        "pre_local_high": 4733.805,
        "confirmation_time": "2026-02-02T11:10:00Z",
        "impulse_extreme": 4749.745,
        "fib50": 4703.378,
        "fib62": 4692.249,
        "entry_mid": 4697.813,
        "invalid": 4657.01,
        "risk_points": 40.803,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-02T13:30:00Z",
        "target1": 4738.617,
        "target2": 4779.42,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4780.07,
        "D_prior_index": 21,
        "H4_prior_index": 129,
        "H1_prior_index": 493,
        "pre_local_low": 4657.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4743.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-02T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4812.265,
        "D_prior_index": 21,
        "H4_prior_index": 129,
        "H1_prior_index": 494,
        "pre_local_low": 4711.055,
        "confirmation_time": "2026-02-02T13:30:00Z",
        "impulse_extreme": 4699.825,
        "fib50": 4756.045,
        "fib62": 4769.538,
        "entry_mid": 4762.791,
        "invalid": 4812.265,
        "risk_points": 49.474,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-02T14:30:00Z",
        "target1": 4713.318,
        "target2": 4663.844,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4721.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T14:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4690.595,
        "D_prior_index": 21,
        "H4_prior_index": 130,
        "H1_prior_index": 497,
        "pre_local_high": 4794.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4647.64,
        "D_prior_index": 21,
        "H4_prior_index": 130,
        "H1_prior_index": 497,
        "pre_local_high": 4794.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T16:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4596.74,
        "D_prior_index": 21,
        "H4_prior_index": 130,
        "H1_prior_index": 498,
        "pre_local_high": 4794.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4645.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-02T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4656.855,
        "D_prior_index": 21,
        "H4_prior_index": 130,
        "H1_prior_index": 499,
        "pre_local_high": 4714.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4688.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4618.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-02T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4637.195,
        "D_prior_index": 21,
        "H4_prior_index": 131,
        "H1_prior_index": 501,
        "pre_local_high": 4688.495,
        "confirmation_time": "2026-02-02T19:40:00Z",
        "impulse_extreme": 4699.735,
        "fib50": 4668.465,
        "fib62": 4660.96,
        "entry_mid": 4664.713,
        "invalid": 4637.195,
        "risk_points": 27.518,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-02T20:20:00Z",
        "target1": 4692.23,
        "target2": 4719.748,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4631.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4669.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-02T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-02T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-02T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4644.21,
        "D_prior_index": 21,
        "H4_prior_index": 131,
        "H1_prior_index": 503,
        "pre_local_high": 4712.925,
        "confirmation_time": "2026-02-02T23:05:00Z",
        "impulse_extreme": 4723.765,
        "fib50": 4683.988,
        "fib62": 4674.441,
        "entry_mid": 4679.214,
        "invalid": 4644.21,
        "risk_points": 35.004,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4831.095,
        "D_prior_index": 22,
        "H4_prior_index": 132,
        "H1_prior_index": 505,
        "pre_local_low": 4648.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-03T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4766.29,
        "D_prior_index": 22,
        "H4_prior_index": 132,
        "H1_prior_index": 506,
        "pre_local_high": 4831.095,
        "confirmation_time": "2026-02-03T01:15:00Z",
        "impulse_extreme": 4848.71,
        "fib50": 4807.5,
        "fib62": 4797.61,
        "entry_mid": 4802.555,
        "invalid": 4766.29,
        "risk_points": 36.265,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-03T02:00:00Z",
        "target1": 4838.82,
        "target2": 4875.084,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4745.68,
        "D_prior_index": 22,
        "H4_prior_index": 133,
        "H1_prior_index": 507,
        "pre_local_high": 4856.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-03T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4751.885,
        "D_prior_index": 22,
        "H4_prior_index": 133,
        "H1_prior_index": 508,
        "pre_local_high": 4852.48,
        "confirmation_time": "2026-02-03T06:15:00Z",
        "impulse_extreme": 4857.31,
        "fib50": 4804.597,
        "fib62": 4791.947,
        "entry_mid": 4798.272,
        "invalid": 4751.885,
        "risk_points": 46.387,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4813.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-03T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4813.46,
        "D_prior_index": 22,
        "H4_prior_index": 133,
        "H1_prior_index": 510,
        "pre_local_high": 4842.3,
        "confirmation_time": "2026-02-03T06:10:00Z",
        "impulse_extreme": 4849.075,
        "fib50": 4831.267,
        "fib62": 4826.994,
        "entry_mid": 4829.131,
        "invalid": 4813.46,
        "risk_points": 15.671,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-03T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4864.77,
        "D_prior_index": 22,
        "H4_prior_index": 134,
        "H1_prior_index": 511,
        "pre_local_high": 4893.815,
        "confirmation_time": "2026-02-03T07:25:00Z",
        "impulse_extreme": 4901.765,
        "fib50": 4883.267,
        "fib62": 4878.828,
        "entry_mid": 4881.048,
        "invalid": 4864.77,
        "risk_points": 16.278,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4893.815,
        "D_prior_index": 22,
        "H4_prior_index": 134,
        "H1_prior_index": 511,
        "pre_local_low": 4809.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4898.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4950.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4908.005,
        "D_prior_index": 22,
        "H4_prior_index": 134,
        "H1_prior_index": 514,
        "pre_local_high": 4950.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4884.625,
        "D_prior_index": 22,
        "H4_prior_index": 134,
        "H1_prior_index": 514,
        "pre_local_high": 4950.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4926.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4914.15,
        "D_prior_index": 22,
        "H4_prior_index": 135,
        "H1_prior_index": 515,
        "pre_local_high": 4950.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4930.075,
        "D_prior_index": 22,
        "H4_prior_index": 135,
        "H1_prior_index": 515,
        "pre_local_low": 4884.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4914.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4913.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4924.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4924.355,
        "D_prior_index": 22,
        "H4_prior_index": 135,
        "H1_prior_index": 515,
        "pre_local_low": 4884.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-03T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4889.88,
        "D_prior_index": 22,
        "H4_prior_index": 135,
        "H1_prior_index": 516,
        "pre_local_high": 4930.075,
        "confirmation_time": "2026-02-03T12:00:00Z",
        "impulse_extreme": 4936.63,
        "fib50": 4913.255,
        "fib62": 4907.645,
        "entry_mid": 4910.45,
        "invalid": 4889.88,
        "risk_points": 20.57,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-03T12:15:00Z",
        "target1": 4931.02,
        "target2": 4951.59,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4883.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4919.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-03T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4902.895,
        "D_prior_index": 22,
        "H4_prior_index": 135,
        "H1_prior_index": 518,
        "pre_local_high": 4936.63,
        "confirmation_time": "2026-02-03T13:40:00Z",
        "impulse_extreme": 4942.2,
        "fib50": 4922.548,
        "fib62": 4917.831,
        "entry_mid": 4920.189,
        "invalid": 4902.895,
        "risk_points": 17.294,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-03T13:50:00Z",
        "target1": 4937.483,
        "target2": 4954.778,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4921.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4951.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-03T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4917.665,
        "D_prior_index": 22,
        "H4_prior_index": 136,
        "H1_prior_index": 519,
        "pre_local_high": 4951.295,
        "confirmation_time": "2026-02-03T16:15:00Z",
        "impulse_extreme": 4971.455,
        "fib50": 4944.56,
        "fib62": 4938.105,
        "entry_mid": 4941.333,
        "invalid": 4917.665,
        "risk_points": 23.668,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-03T17:05:00Z",
        "target1": 4965.0,
        "target2": 4988.668,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4896.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4893.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4929.23,
        "D_prior_index": 22,
        "H4_prior_index": 136,
        "H1_prior_index": 519,
        "pre_local_low": 4896.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4930.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-03T15:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4904.805,
        "D_prior_index": 22,
        "H4_prior_index": 136,
        "H1_prior_index": 520,
        "pre_local_high": 4951.295,
        "confirmation_time": "2026-02-03T16:15:00Z",
        "impulse_extreme": 4971.455,
        "fib50": 4938.13,
        "fib62": 4930.132,
        "entry_mid": 4934.131,
        "invalid": 4904.805,
        "risk_points": 29.326,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-03T17:05:00Z",
        "target1": 4963.457,
        "target2": 4992.783,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4908.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4970.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4907.63,
        "D_prior_index": 22,
        "H4_prior_index": 136,
        "H1_prior_index": 522,
        "pre_local_high": 4993.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4954.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4884.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4880.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4915.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4902.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4932.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-03T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4934.075,
        "D_prior_index": 22,
        "H4_prior_index": 137,
        "H1_prior_index": 526,
        "pre_local_high": 4964.24,
        "confirmation_time": "2026-02-04T00:05:00Z",
        "impulse_extreme": 4969.94,
        "fib50": 4952.007,
        "fib62": 4947.704,
        "entry_mid": 4949.856,
        "invalid": 4934.075,
        "risk_points": 15.781,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-03T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4959.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-03T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-03T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4955.74,
        "D_prior_index": 23,
        "H4_prior_index": 138,
        "H1_prior_index": 527,
        "pre_local_low": 4909.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5000.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4968.515,
        "D_prior_index": 23,
        "H4_prior_index": 138,
        "H1_prior_index": 528,
        "pre_local_high": 5000.4,
        "confirmation_time": "2026-02-04T00:45:00Z",
        "impulse_extreme": 5004.345,
        "fib50": 4986.43,
        "fib62": 4982.13,
        "entry_mid": 4984.28,
        "invalid": 4968.515,
        "risk_points": 15.765,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T01:00:00Z",
        "target1": 5000.045,
        "target2": 5015.811,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4985.05,
        "D_prior_index": 23,
        "H4_prior_index": 138,
        "H1_prior_index": 529,
        "pre_local_high": 5017.37,
        "confirmation_time": "2026-02-04T01:05:00Z",
        "impulse_extreme": 5039.925,
        "fib50": 5012.488,
        "fib62": 5005.903,
        "entry_mid": 5009.195,
        "invalid": 4985.05,
        "risk_points": 24.145,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T01:35:00Z",
        "target1": 5033.34,
        "target2": 5057.485,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5010.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5039.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5035.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5073.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5073.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5074.125,
        "D_prior_index": 23,
        "H4_prior_index": 139,
        "H1_prior_index": 532,
        "pre_local_low": 5035.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5085.48,
        "D_prior_index": 23,
        "H4_prior_index": 139,
        "H1_prior_index": 533,
        "pre_local_low": 5056.28,
        "confirmation_time": "2026-02-04T06:25:00Z",
        "impulse_extreme": 5052.855,
        "fib50": 5069.167,
        "fib62": 5073.082,
        "entry_mid": 5071.125,
        "invalid": 5085.48,
        "risk_points": 14.355,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T06:40:00Z",
        "target1": 5056.77,
        "target2": 5042.415,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5069.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5086.83,
        "D_prior_index": 23,
        "H4_prior_index": 139,
        "H1_prior_index": 533,
        "pre_local_low": 5056.28,
        "confirmation_time": "2026-02-04T06:25:00Z",
        "impulse_extreme": 5052.855,
        "fib50": 5069.842,
        "fib62": 5073.919,
        "entry_mid": 5071.881,
        "invalid": 5086.83,
        "risk_points": 14.949,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T06:40:00Z",
        "target1": 5056.932,
        "target2": 5041.983,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5090.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5082.93,
        "D_prior_index": 23,
        "H4_prior_index": 140,
        "H1_prior_index": 535,
        "pre_local_low": 5051.155,
        "confirmation_time": "2026-02-04T09:30:00Z",
        "impulse_extreme": 5043.245,
        "fib50": 5063.087,
        "fib62": 5067.85,
        "entry_mid": 5065.469,
        "invalid": 5082.93,
        "risk_points": 17.461,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T09:40:00Z",
        "target1": 5048.007,
        "target2": 5030.546,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5062.505,
        "D_prior_index": 23,
        "H4_prior_index": 140,
        "H1_prior_index": 535,
        "pre_local_high": 5090.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-04T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5090.445,
        "D_prior_index": 23,
        "H4_prior_index": 140,
        "H1_prior_index": 535,
        "pre_local_low": 5051.155,
        "confirmation_time": "2026-02-04T09:30:00Z",
        "impulse_extreme": 5043.245,
        "fib50": 5066.845,
        "fib62": 5072.509,
        "entry_mid": 5069.677,
        "invalid": 5090.445,
        "risk_points": 20.768,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5091.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-04T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5091.93,
        "D_prior_index": 23,
        "H4_prior_index": 140,
        "H1_prior_index": 536,
        "pre_local_low": 5052.855,
        "confirmation_time": "2026-02-04T09:30:00Z",
        "impulse_extreme": 5043.245,
        "fib50": 5067.587,
        "fib62": 5073.43,
        "entry_mid": 5070.509,
        "invalid": 5091.93,
        "risk_points": 21.421,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-04T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5086.975,
        "D_prior_index": 23,
        "H4_prior_index": 140,
        "H1_prior_index": 537,
        "pre_local_low": 5066.47,
        "confirmation_time": "2026-02-04T09:15:00Z",
        "impulse_extreme": 5059.415,
        "fib50": 5073.195,
        "fib62": 5076.502,
        "entry_mid": 5074.849,
        "invalid": 5086.975,
        "risk_points": 12.126,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5043.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5064.58,
        "D_prior_index": 23,
        "H4_prior_index": 141,
        "H1_prior_index": 538,
        "pre_local_low": 5043.245,
        "confirmation_time": "2026-02-04T10:20:00Z",
        "impulse_extreme": 5042.72,
        "fib50": 5053.65,
        "fib62": 5056.273,
        "entry_mid": 5054.962,
        "invalid": 5064.58,
        "risk_points": 9.618,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T10:30:00Z",
        "target1": 5045.343,
        "target2": 5035.725,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5055.375,
        "D_prior_index": 23,
        "H4_prior_index": 141,
        "H1_prior_index": 540,
        "pre_local_low": 5013.77,
        "confirmation_time": "2026-02-04T14:35:00Z",
        "impulse_extreme": 4969.415,
        "fib50": 5012.395,
        "fib62": 5022.71,
        "entry_mid": 5017.553,
        "invalid": 5055.375,
        "risk_points": 37.822,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-04T14:50:00Z",
        "target1": 4979.73,
        "target2": 4941.908,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5059.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T13:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5063.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5034.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4895.46,
        "D_prior_index": 23,
        "H4_prior_index": 142,
        "H1_prior_index": 544,
        "pre_local_high": 5046.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4890.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4848.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4888.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4925.77,
        "D_prior_index": 23,
        "H4_prior_index": 142,
        "H1_prior_index": 545,
        "pre_local_low": 4848.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4931.535,
        "D_prior_index": 23,
        "H4_prior_index": 142,
        "H1_prior_index": 545,
        "pre_local_low": 4848.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-04T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4872.865,
        "D_prior_index": 23,
        "H4_prior_index": 143,
        "H1_prior_index": 546,
        "pre_local_high": 4934.845,
        "confirmation_time": "2026-02-04T19:05:00Z",
        "impulse_extreme": 4941.395,
        "fib50": 4907.13,
        "fib62": 4898.906,
        "entry_mid": 4903.018,
        "invalid": 4872.865,
        "risk_points": 30.153,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4932.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4950.325,
        "D_prior_index": 23,
        "H4_prior_index": 143,
        "H1_prior_index": 547,
        "pre_local_low": 4872.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4957.72,
        "D_prior_index": 23,
        "H4_prior_index": 143,
        "H1_prior_index": 547,
        "pre_local_low": 4896.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4921.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4919.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-04T20:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4914.245,
        "D_prior_index": 23,
        "H4_prior_index": 143,
        "H1_prior_index": 548,
        "pre_local_high": 4957.72,
        "confirmation_time": "2026-02-04T21:25:00Z",
        "impulse_extreme": 4959.605,
        "fib50": 4936.925,
        "fib62": 4931.482,
        "entry_mid": 4934.203,
        "invalid": 4914.245,
        "risk_points": 19.958,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T01:25:00Z",
        "target1": 4954.162,
        "target2": 4974.12,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-04T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4971.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-04T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.2,
        "D_prior_index": 24,
        "H4_prior_index": 144,
        "H1_prior_index": 550,
        "pre_local_high": 5024.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-04T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-04T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5024.03,
        "D_prior_index": 24,
        "H4_prior_index": 144,
        "H1_prior_index": 550,
        "pre_local_low": 4941.96,
        "confirmation_time": "2026-02-05T02:05:00Z",
        "impulse_extreme": 4932.105,
        "fib50": 4978.067,
        "fib62": 4989.099,
        "entry_mid": 4983.583,
        "invalid": 5024.03,
        "risk_points": 40.447,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5019.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-05T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.555,
        "D_prior_index": 24,
        "H4_prior_index": 144,
        "H1_prior_index": 551,
        "pre_local_low": 4987.85,
        "confirmation_time": "2026-02-05T01:10:00Z",
        "impulse_extreme": 4967.275,
        "fib50": 4993.915,
        "fib62": 5000.309,
        "entry_mid": 4997.112,
        "invalid": 5020.555,
        "risk_points": 23.443,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4986.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4895.77,
        "D_prior_index": 24,
        "H4_prior_index": 145,
        "H1_prior_index": 553,
        "pre_local_high": 5020.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T02:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4895.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.655,
        "D_prior_index": 24,
        "H4_prior_index": 145,
        "H1_prior_index": 554,
        "pre_local_high": 4986.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4870.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4840.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4877.655,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 557,
        "pre_local_high": 4906.57,
        "confirmation_time": "2026-02-05T06:05:00Z",
        "impulse_extreme": 4917.225,
        "fib50": 4897.44,
        "fib62": 4892.692,
        "entry_mid": 4895.066,
        "invalid": 4877.655,
        "risk_points": 17.411,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T07:40:00Z",
        "target1": 4912.477,
        "target2": 4929.887,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4930.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4898.68,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 557,
        "pre_local_high": 4934.125,
        "confirmation_time": "2026-02-05T08:10:00Z",
        "impulse_extreme": 4942.705,
        "fib50": 4920.693,
        "fib62": 4915.409,
        "entry_mid": 4918.051,
        "invalid": 4898.68,
        "risk_points": 19.371,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T08:25:00Z",
        "target1": 4937.422,
        "target2": 4956.793,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4934.125,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 557,
        "pre_local_low": 4825.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4911.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-05T08:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4943.735,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 559,
        "pre_local_low": 4896.065,
        "confirmation_time": "2026-02-05T09:00:00Z",
        "impulse_extreme": 4881.61,
        "fib50": 4912.672,
        "fib62": 4920.127,
        "entry_mid": 4916.4,
        "invalid": 4943.735,
        "risk_points": 27.335,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4917.22,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 559,
        "pre_local_high": 4943.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4853.275,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 560,
        "pre_local_high": 4943.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T09:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4894.525,
        "D_prior_index": 24,
        "H4_prior_index": 146,
        "H1_prior_index": 560,
        "pre_local_low": 4853.275,
        "confirmation_time": "2026-02-05T12:05:00Z",
        "impulse_extreme": 4848.515,
        "fib50": 4871.52,
        "fib62": 4877.041,
        "entry_mid": 4874.281,
        "invalid": 4894.525,
        "risk_points": 20.244,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T16:40:00Z",
        "target1": 4854.036,
        "target2": 4833.792,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4847.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4878.35,
        "D_prior_index": 24,
        "H4_prior_index": 147,
        "H1_prior_index": 561,
        "pre_local_low": 4849.9,
        "confirmation_time": "2026-02-05T12:10:00Z",
        "impulse_extreme": 4834.4,
        "fib50": 4856.375,
        "fib62": 4861.649,
        "entry_mid": 4859.012,
        "invalid": 4878.35,
        "risk_points": 19.338,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T12:30:00Z",
        "target1": 4839.674,
        "target2": 4820.336,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4879.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4887.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4810.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4871.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4837.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4865.99,
        "D_prior_index": 24,
        "H4_prior_index": 147,
        "H1_prior_index": 564,
        "pre_local_low": 4802.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4868.82,
        "D_prior_index": 24,
        "H4_prior_index": 147,
        "H1_prior_index": 564,
        "pre_local_low": 4802.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4820.205,
        "D_prior_index": 24,
        "H4_prior_index": 147,
        "H1_prior_index": 564,
        "pre_local_high": 4871.12,
        "confirmation_time": "2026-02-05T16:40:00Z",
        "impulse_extreme": 4880.47,
        "fib50": 4850.337,
        "fib62": 4843.106,
        "entry_mid": 4846.722,
        "invalid": 4820.205,
        "risk_points": 26.517,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T19:05:00Z",
        "target1": 4873.238,
        "target2": 4899.755,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4850.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4810.195,
        "D_prior_index": 24,
        "H4_prior_index": 148,
        "H1_prior_index": 565,
        "pre_local_high": 4871.12,
        "confirmation_time": "2026-02-05T16:40:00Z",
        "impulse_extreme": 4880.47,
        "fib50": 4845.333,
        "fib62": 4836.899,
        "entry_mid": 4841.116,
        "invalid": 4810.195,
        "risk_points": 30.921,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T19:05:00Z",
        "target1": 4872.037,
        "target2": 4902.958,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4806.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4869.81,
        "D_prior_index": 24,
        "H4_prior_index": 148,
        "H1_prior_index": 565,
        "pre_local_low": 4802.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-05T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4800.535,
        "D_prior_index": 24,
        "H4_prior_index": 148,
        "H1_prior_index": 566,
        "pre_local_high": 4869.81,
        "confirmation_time": "2026-02-05T16:40:00Z",
        "impulse_extreme": 4880.47,
        "fib50": 4840.503,
        "fib62": 4830.91,
        "entry_mid": 4835.706,
        "invalid": 4800.535,
        "risk_points": 35.171,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-05T19:30:00Z",
        "target1": 4870.878,
        "target2": 4906.049,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4841.935,
        "D_prior_index": 24,
        "H4_prior_index": 148,
        "H1_prior_index": 567,
        "pre_local_low": 4800.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4859.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-05T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4885.325,
        "D_prior_index": 24,
        "H4_prior_index": 148,
        "H1_prior_index": 568,
        "pre_local_low": 4815.865,
        "confirmation_time": "2026-02-05T20:35:00Z",
        "impulse_extreme": 4807.61,
        "fib50": 4846.467,
        "fib62": 4855.793,
        "entry_mid": 4851.13,
        "invalid": 4885.325,
        "risk_points": 34.195,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4851.69,
        "D_prior_index": 24,
        "H4_prior_index": 149,
        "H1_prior_index": 569,
        "pre_local_high": 4906.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4851.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-05T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4873.325,
        "D_prior_index": 24,
        "H4_prior_index": 149,
        "H1_prior_index": 569,
        "pre_local_low": 4851.69,
        "confirmation_time": "2026-02-05T19:10:00Z",
        "impulse_extreme": 4849.995,
        "fib50": 4861.66,
        "fib62": 4864.46,
        "entry_mid": 4863.06,
        "invalid": 4873.325,
        "risk_points": 10.265,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4823.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4813.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4810.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-05T20:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4807.11,
        "D_prior_index": 24,
        "H4_prior_index": 149,
        "H1_prior_index": 571,
        "pre_local_high": 4870.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4793.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T21:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4759.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-05T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-05T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4782.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4655.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-06T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4693.835,
        "D_prior_index": 25,
        "H4_prior_index": 150,
        "H1_prior_index": 575,
        "pre_local_high": 4766.11,
        "confirmation_time": "2026-02-06T01:50:00Z",
        "impulse_extreme": 4770.545,
        "fib50": 4732.19,
        "fib62": 4722.985,
        "entry_mid": 4727.587,
        "invalid": 4693.835,
        "risk_points": 33.752,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4809.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-06T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4808.96,
        "D_prior_index": 25,
        "H4_prior_index": 151,
        "H1_prior_index": 577,
        "pre_local_high": 4846.66,
        "confirmation_time": "2026-02-06T05:25:00Z",
        "impulse_extreme": 4852.46,
        "fib50": 4830.71,
        "fib62": 4825.49,
        "entry_mid": 4828.1,
        "invalid": 4808.96,
        "risk_points": 19.14,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-06T06:55:00Z",
        "target1": 4847.24,
        "target2": 4866.38,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4839.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4801.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4800.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4827.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4828.075,
        "D_prior_index": 25,
        "H4_prior_index": 151,
        "H1_prior_index": 578,
        "pre_local_low": 4789.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4807.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4832.005,
        "D_prior_index": 25,
        "H4_prior_index": 151,
        "H1_prior_index": 578,
        "pre_local_low": 4800.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-06T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4807.72,
        "D_prior_index": 25,
        "H4_prior_index": 151,
        "H1_prior_index": 579,
        "pre_local_high": 4832.005,
        "confirmation_time": "2026-02-06T05:15:00Z",
        "impulse_extreme": 4832.375,
        "fib50": 4820.048,
        "fib62": 4817.089,
        "entry_mid": 4818.568,
        "invalid": 4807.72,
        "risk_points": 10.848,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4903.4,
        "D_prior_index": 25,
        "H4_prior_index": 152,
        "H1_prior_index": 580,
        "pre_local_low": 4807.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4824.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4829.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4882.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-06T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4852.605,
        "D_prior_index": 25,
        "H4_prior_index": 152,
        "H1_prior_index": 582,
        "pre_local_high": 4882.34,
        "confirmation_time": "2026-02-06T11:10:00Z",
        "impulse_extreme": 4884.65,
        "fib50": 4868.627,
        "fib62": 4864.782,
        "entry_mid": 4866.705,
        "invalid": 4852.605,
        "risk_points": 14.1,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4871.505,
        "D_prior_index": 25,
        "H4_prior_index": 152,
        "H1_prior_index": 583,
        "pre_local_low": 4829.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-06T09:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4838.68,
        "D_prior_index": 25,
        "H4_prior_index": 152,
        "H1_prior_index": 583,
        "pre_local_high": 4882.34,
        "confirmation_time": "2026-02-06T11:10:00Z",
        "impulse_extreme": 4884.65,
        "fib50": 4861.665,
        "fib62": 4856.149,
        "entry_mid": 4858.907,
        "invalid": 4838.68,
        "risk_points": 20.227,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4873.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-06T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4856.475,
        "D_prior_index": 25,
        "H4_prior_index": 152,
        "H1_prior_index": 583,
        "pre_local_high": 4882.34,
        "confirmation_time": "2026-02-06T11:10:00Z",
        "impulse_extreme": 4884.65,
        "fib50": 4870.562,
        "fib62": 4867.181,
        "entry_mid": 4868.872,
        "invalid": 4856.475,
        "risk_points": 12.397,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4878.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4863.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4896.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4928.425,
        "D_prior_index": 25,
        "H4_prior_index": 153,
        "H1_prior_index": 587,
        "pre_local_low": 4871.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-06T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4909.68,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 588,
        "pre_local_high": 4938.505,
        "confirmation_time": "2026-02-06T14:45:00Z",
        "impulse_extreme": 4939.8,
        "fib50": 4924.74,
        "fib62": 4921.126,
        "entry_mid": 4922.933,
        "invalid": 4909.68,
        "risk_points": 13.253,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-06T16:25:00Z",
        "target1": 4936.186,
        "target2": 4949.438,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4964.815,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 589,
        "pre_local_low": 4894.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4935.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4960.65,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 589,
        "pre_local_low": 4894.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-06T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4928.5,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 589,
        "pre_local_high": 4964.815,
        "confirmation_time": "2026-02-06T18:10:00Z",
        "impulse_extreme": 4971.34,
        "fib50": 4949.92,
        "fib62": 4944.779,
        "entry_mid": 4947.35,
        "invalid": 4928.5,
        "risk_points": 18.85,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-06T18:20:00Z",
        "target1": 4966.199,
        "target2": 4985.049,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-06T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4921.85,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 590,
        "pre_local_high": 4964.815,
        "confirmation_time": "2026-02-06T18:10:00Z",
        "impulse_extreme": 4971.34,
        "fib50": 4946.595,
        "fib62": 4940.656,
        "entry_mid": 4943.626,
        "invalid": 4921.85,
        "risk_points": 21.776,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-06T18:20:00Z",
        "target1": 4965.401,
        "target2": 4987.177,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4948.435,
        "D_prior_index": 25,
        "H4_prior_index": 154,
        "H1_prior_index": 590,
        "pre_local_low": 4921.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4948.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4968.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4968.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4962.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4951.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4946.7,
        "D_prior_index": 25,
        "H4_prior_index": 155,
        "H1_prior_index": 594,
        "pre_local_high": 4968.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-06T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4958.395,
        "D_prior_index": 25,
        "H4_prior_index": 155,
        "H1_prior_index": 595,
        "pre_local_low": 4936.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-06T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-06T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4968.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-08T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-08T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5047.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5022.365,
        "D_prior_index": 26,
        "H4_prior_index": 156,
        "H1_prior_index": 597,
        "pre_local_high": 5047.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5012.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5005.435,
        "D_prior_index": 26,
        "H4_prior_index": 156,
        "H1_prior_index": 598,
        "pre_local_high": 5047.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5042.105,
        "D_prior_index": 26,
        "H4_prior_index": 156,
        "H1_prior_index": 598,
        "pre_local_low": 4987.835,
        "confirmation_time": "2026-02-09T01:35:00Z",
        "impulse_extreme": 4976.15,
        "fib50": 5009.127,
        "fib62": 5017.042,
        "entry_mid": 5013.085,
        "invalid": 5042.105,
        "risk_points": 29.02,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T01:40:00Z",
        "target1": 4984.065,
        "target2": 4955.044,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T02:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4968.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4986.465,
        "D_prior_index": 26,
        "H4_prior_index": 157,
        "H1_prior_index": 599,
        "pre_local_high": 5032.46,
        "confirmation_time": "2026-02-09T05:35:00Z",
        "impulse_extreme": 5035.405,
        "fib50": 5010.935,
        "fib62": 5005.062,
        "entry_mid": 5007.999,
        "invalid": 4986.465,
        "risk_points": 21.534,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T07:10:00Z",
        "target1": 5029.532,
        "target2": 5051.066,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5031.275,
        "D_prior_index": 26,
        "H4_prior_index": 157,
        "H1_prior_index": 600,
        "pre_local_low": 4968.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.775,
        "D_prior_index": 26,
        "H4_prior_index": 157,
        "H1_prior_index": 601,
        "pre_local_high": 5031.275,
        "confirmation_time": "2026-02-09T05:30:00Z",
        "impulse_extreme": 5033.465,
        "fib50": 5021.12,
        "fib62": 5018.157,
        "entry_mid": 5019.639,
        "invalid": 5008.775,
        "risk_points": 10.864,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T06:20:00Z",
        "target1": 5030.502,
        "target2": 5041.366,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5024.845,
        "D_prior_index": 26,
        "H4_prior_index": 157,
        "H1_prior_index": 601,
        "pre_local_low": 4986.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5023.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5045.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5040.255,
        "D_prior_index": 26,
        "H4_prior_index": 158,
        "H1_prior_index": 603,
        "pre_local_low": 5012.935,
        "confirmation_time": "2026-02-09T07:20:00Z",
        "impulse_extreme": 4997.855,
        "fib50": 5019.055,
        "fib62": 5024.143,
        "entry_mid": 5021.599,
        "invalid": 5040.255,
        "risk_points": 18.656,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T08:05:00Z",
        "target1": 5002.943,
        "target2": 4984.287,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4997.855,
        "D_prior_index": 26,
        "H4_prior_index": 158,
        "H1_prior_index": 604,
        "pre_local_high": 5045.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5032.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5036.2,
        "D_prior_index": 26,
        "H4_prior_index": 158,
        "H1_prior_index": 605,
        "pre_local_low": 4997.855,
        "confirmation_time": "2026-02-09T10:25:00Z",
        "impulse_extreme": 4986.235,
        "fib50": 5011.217,
        "fib62": 5017.213,
        "entry_mid": 5014.215,
        "invalid": 5036.2,
        "risk_points": 21.985,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T11:40:00Z",
        "target1": 4992.231,
        "target2": 4970.246,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5022.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5041.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5016.41,
        "D_prior_index": 26,
        "H4_prior_index": 158,
        "H1_prior_index": 606,
        "pre_local_high": 5041.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.71,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 607,
        "pre_local_high": 5041.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T10:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5015.45,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 607,
        "pre_local_low": 4996.71,
        "confirmation_time": "2026-02-09T10:25:00Z",
        "impulse_extreme": 4986.235,
        "fib50": 5000.842,
        "fib62": 5004.348,
        "entry_mid": 5002.595,
        "invalid": 5015.45,
        "risk_points": 12.855,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T11:20:00Z",
        "target1": 4989.741,
        "target2": 4976.886,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4982.495,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 607,
        "pre_local_high": 5041.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4999.27,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 608,
        "pre_local_low": 4982.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5018.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-09T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5007.49,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 609,
        "pre_local_high": 5018.335,
        "confirmation_time": "2026-02-09T13:00:00Z",
        "impulse_extreme": 5020.2,
        "fib50": 5013.845,
        "fib62": 5012.32,
        "entry_mid": 5013.082,
        "invalid": 5007.49,
        "risk_points": 5.592,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5018.045,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 609,
        "pre_local_low": 4983.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-09T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5009.68,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 609,
        "pre_local_high": 5019.96,
        "confirmation_time": "2026-02-09T13:05:00Z",
        "impulse_extreme": 5024.66,
        "fib50": 5017.17,
        "fib62": 5015.372,
        "entry_mid": 5016.271,
        "invalid": 5009.68,
        "risk_points": 6.591,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-09T13:10:00Z",
        "target1": 5022.862,
        "target2": 5029.454,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5021.92,
        "D_prior_index": 26,
        "H4_prior_index": 159,
        "H1_prior_index": 609,
        "pre_local_low": 4988.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5007.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5042.37,
        "D_prior_index": 26,
        "H4_prior_index": 160,
        "H1_prior_index": 612,
        "pre_local_low": 4995.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5023.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5080.895,
        "D_prior_index": 26,
        "H4_prior_index": 160,
        "H1_prior_index": 613,
        "pre_local_low": 5023.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5044.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5059.94,
        "D_prior_index": 26,
        "H4_prior_index": 161,
        "H1_prior_index": 615,
        "pre_local_low": 5040.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5081.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5072.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-09T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5086.68,
        "D_prior_index": 26,
        "H4_prior_index": 161,
        "H1_prior_index": 617,
        "pre_local_low": 5054.215,
        "confirmation_time": "2026-02-09T23:05:00Z",
        "impulse_extreme": 5035.24,
        "fib50": 5060.96,
        "fib62": 5067.133,
        "entry_mid": 5064.046,
        "invalid": 5086.68,
        "risk_points": 22.634,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-09T21:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5083.2,
        "D_prior_index": 26,
        "H4_prior_index": 161,
        "H1_prior_index": 618,
        "pre_local_low": 5065.82,
        "confirmation_time": "2026-02-09T21:10:00Z",
        "impulse_extreme": 5061.805,
        "fib50": 5072.503,
        "fib62": 5075.07,
        "entry_mid": 5073.786,
        "invalid": 5083.2,
        "risk_points": 9.414,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-09T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5066.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-09T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-09T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5042.67,
        "D_prior_index": 27,
        "H4_prior_index": 162,
        "H1_prior_index": 619,
        "pre_local_low": 4987.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5048.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5009.015,
        "D_prior_index": 27,
        "H4_prior_index": 162,
        "H1_prior_index": 620,
        "pre_local_high": 5064.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5038.005,
        "D_prior_index": 27,
        "H4_prior_index": 162,
        "H1_prior_index": 621,
        "pre_local_low": 5009.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5036.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5032.355,
        "D_prior_index": 27,
        "H4_prior_index": 163,
        "H1_prior_index": 623,
        "pre_local_low": 5016.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5031.115,
        "D_prior_index": 27,
        "H4_prior_index": 163,
        "H1_prior_index": 624,
        "pre_local_low": 5016.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5022.17,
        "D_prior_index": 27,
        "H4_prior_index": 163,
        "H1_prior_index": 624,
        "pre_local_high": 5049.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5035.48,
        "D_prior_index": 27,
        "H4_prior_index": 163,
        "H1_prior_index": 625,
        "pre_local_low": 5016.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5045.73,
        "D_prior_index": 27,
        "H4_prior_index": 164,
        "H1_prior_index": 626,
        "pre_local_low": 5011.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5039.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-10T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5018.67,
        "D_prior_index": 27,
        "H4_prior_index": 164,
        "H1_prior_index": 627,
        "pre_local_high": 5045.73,
        "confirmation_time": "2026-02-10T08:40:00Z",
        "impulse_extreme": 5048.96,
        "fib50": 5033.815,
        "fib62": 5030.18,
        "entry_mid": 5031.998,
        "invalid": 5018.67,
        "risk_points": 13.328,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-10T12:40:00Z",
        "target1": 5045.325,
        "target2": 5058.653,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5034.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5036.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5041.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5041.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5055.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5063.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5045.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5042.095,
        "D_prior_index": 27,
        "H4_prior_index": 164,
        "H1_prior_index": 629,
        "pre_local_high": 5063.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5052.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5037.225,
        "D_prior_index": 27,
        "H4_prior_index": 165,
        "H1_prior_index": 630,
        "pre_local_high": 5063.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5044.165,
        "D_prior_index": 27,
        "H4_prior_index": 165,
        "H1_prior_index": 630,
        "pre_local_high": 5063.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5054.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-10T11:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5045.155,
        "D_prior_index": 27,
        "H4_prior_index": 165,
        "H1_prior_index": 631,
        "pre_local_high": 5058.195,
        "confirmation_time": "2026-02-10T14:15:00Z",
        "impulse_extreme": 5074.86,
        "fib50": 5060.007,
        "fib62": 5056.443,
        "entry_mid": 5058.225,
        "invalid": 5045.155,
        "risk_points": 13.07,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-10T14:35:00Z",
        "target1": 5071.295,
        "target2": 5084.366,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-10T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5019.935,
        "D_prior_index": 27,
        "H4_prior_index": 165,
        "H1_prior_index": 632,
        "pre_local_high": 5057.555,
        "confirmation_time": "2026-02-10T14:15:00Z",
        "impulse_extreme": 5074.86,
        "fib50": 5047.398,
        "fib62": 5040.806,
        "entry_mid": 5044.102,
        "invalid": 5019.935,
        "risk_points": 24.167,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-10T14:45:00Z",
        "target1": 5068.269,
        "target2": 5092.436,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5046.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5046.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5058.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5053.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5078.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5048.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5005.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5024.67,
        "D_prior_index": 27,
        "H4_prior_index": 166,
        "H1_prior_index": 636,
        "pre_local_low": 4998.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5027.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5039.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T17:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5040.22,
        "D_prior_index": 27,
        "H4_prior_index": 166,
        "H1_prior_index": 637,
        "pre_local_low": 5005.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5017.26,
        "D_prior_index": 27,
        "H4_prior_index": 167,
        "H1_prior_index": 638,
        "pre_local_low": 5004.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5030.375,
        "D_prior_index": 27,
        "H4_prior_index": 167,
        "H1_prior_index": 639,
        "pre_local_low": 5004.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5020.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5034.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-10T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5045.6,
        "D_prior_index": 27,
        "H4_prior_index": 167,
        "H1_prior_index": 640,
        "pre_local_low": 5010.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-10T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5025.615,
        "D_prior_index": 27,
        "H4_prior_index": 167,
        "H1_prior_index": 641,
        "pre_local_high": 5045.6,
        "confirmation_time": "2026-02-10T23:20:00Z",
        "impulse_extreme": 5054.855,
        "fib50": 5040.235,
        "fib62": 5036.726,
        "entry_mid": 5038.481,
        "invalid": 5025.615,
        "risk_points": 12.866,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-10T23:35:00Z",
        "target1": 5051.346,
        "target2": 5064.212,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5023.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-10T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5023.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-10T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-10T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.4,
        "D_prior_index": 27,
        "H4_prior_index": 167,
        "H1_prior_index": 641,
        "pre_local_high": 5045.6,
        "confirmation_time": "2026-02-10T23:20:00Z",
        "impulse_extreme": 5054.855,
        "fib50": 5037.627,
        "fib62": 5033.493,
        "entry_mid": 5035.56,
        "invalid": 5020.4,
        "risk_points": 15.16,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T00:05:00Z",
        "target1": 5050.72,
        "target2": 5065.881,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-11T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5028.39,
        "D_prior_index": 28,
        "H4_prior_index": 168,
        "H1_prior_index": 643,
        "pre_local_high": 5054.855,
        "confirmation_time": "2026-02-11T02:50:00Z",
        "impulse_extreme": 5057.27,
        "fib50": 5042.83,
        "fib62": 5039.364,
        "entry_mid": 5041.097,
        "invalid": 5028.39,
        "risk_points": 12.707,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5030.845,
        "D_prior_index": 28,
        "H4_prior_index": 168,
        "H1_prior_index": 644,
        "pre_local_high": 5054.855,
        "confirmation_time": "2026-02-11T02:50:00Z",
        "impulse_extreme": 5057.27,
        "fib50": 5044.058,
        "fib62": 5040.887,
        "entry_mid": 5042.472,
        "invalid": 5030.845,
        "risk_points": 11.627,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T05:05:00Z",
        "target1": 5054.099,
        "target2": 5065.726,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5047.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5032.71,
        "D_prior_index": 28,
        "H4_prior_index": 168,
        "H1_prior_index": 644,
        "pre_local_high": 5049.625,
        "confirmation_time": "2026-02-11T01:50:00Z",
        "impulse_extreme": 5050.235,
        "fib50": 5041.472,
        "fib62": 5039.369,
        "entry_mid": 5040.421,
        "invalid": 5032.71,
        "risk_points": 7.711,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T02:05:00Z",
        "target1": 5048.132,
        "target2": 5055.843,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5046.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T02:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5056.885,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 645,
        "pre_local_low": 5030.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5032.745,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 645,
        "pre_local_high": 5056.885,
        "confirmation_time": "2026-02-11T03:25:00Z",
        "impulse_extreme": 5059.195,
        "fib50": 5045.97,
        "fib62": 5042.796,
        "entry_mid": 5044.383,
        "invalid": 5032.745,
        "risk_points": 11.638,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T04:50:00Z",
        "target1": 5056.021,
        "target2": 5067.659,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5045.165,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 646,
        "pre_local_high": 5057.775,
        "confirmation_time": "2026-02-11T03:40:00Z",
        "impulse_extreme": 5059.02,
        "fib50": 5052.093,
        "fib62": 5050.43,
        "entry_mid": 5051.261,
        "invalid": 5045.165,
        "risk_points": 6.096,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T04:40:00Z",
        "target1": 5057.357,
        "target2": 5063.454,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5060.66,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 646,
        "pre_local_low": 5032.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5053.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5061.02,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 646,
        "pre_local_low": 5032.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5053.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5059.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5043.8,
        "D_prior_index": 28,
        "H4_prior_index": 169,
        "H1_prior_index": 648,
        "pre_local_high": 5061.02,
        "confirmation_time": "2026-02-11T05:35:00Z",
        "impulse_extreme": 5063.19,
        "fib50": 5053.495,
        "fib62": 5051.168,
        "entry_mid": 5052.332,
        "invalid": 5043.8,
        "risk_points": 8.532,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T05:50:00Z",
        "target1": 5060.863,
        "target2": 5069.395,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5046.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5061.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5053.56,
        "D_prior_index": 28,
        "H4_prior_index": 170,
        "H1_prior_index": 649,
        "pre_local_high": 5064.04,
        "confirmation_time": "2026-02-11T06:55:00Z",
        "impulse_extreme": 5064.7,
        "fib50": 5059.13,
        "fib62": 5057.793,
        "entry_mid": 5058.462,
        "invalid": 5053.56,
        "risk_points": 4.902,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T07:10:00Z",
        "target1": 5063.363,
        "target2": 5068.265,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5051.86,
        "D_prior_index": 28,
        "H4_prior_index": 170,
        "H1_prior_index": 649,
        "pre_local_high": 5064.04,
        "confirmation_time": "2026-02-11T06:55:00Z",
        "impulse_extreme": 5064.7,
        "fib50": 5058.28,
        "fib62": 5056.739,
        "entry_mid": 5057.51,
        "invalid": 5051.86,
        "risk_points": 5.65,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T07:10:00Z",
        "target1": 5063.159,
        "target2": 5068.809,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5069.235,
        "D_prior_index": 28,
        "H4_prior_index": 170,
        "H1_prior_index": 650,
        "pre_local_low": 5046.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5052.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5049.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5060.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5045.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5055.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5047.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5056.01,
        "D_prior_index": 28,
        "H4_prior_index": 170,
        "H1_prior_index": 652,
        "pre_local_low": 5045.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5072.185,
        "D_prior_index": 28,
        "H4_prior_index": 170,
        "H1_prior_index": 652,
        "pre_local_low": 5045.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5101.49,
        "D_prior_index": 28,
        "H4_prior_index": 171,
        "H1_prior_index": 653,
        "pre_local_low": 5047.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5119.345,
        "D_prior_index": 28,
        "H4_prior_index": 171,
        "H1_prior_index": 655,
        "pre_local_low": 5068.24,
        "confirmation_time": "2026-02-11T13:30:00Z",
        "impulse_extreme": 5019.715,
        "fib50": 5069.53,
        "fib62": 5081.486,
        "entry_mid": 5075.508,
        "invalid": 5119.345,
        "risk_points": 43.837,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T13:45:00Z",
        "target1": 5031.671,
        "target2": 4987.833,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5088.34,
        "D_prior_index": 28,
        "H4_prior_index": 171,
        "H1_prior_index": 656,
        "pre_local_low": 5052.53,
        "confirmation_time": "2026-02-11T13:30:00Z",
        "impulse_extreme": 5019.715,
        "fib50": 5054.028,
        "fib62": 5062.262,
        "entry_mid": 5058.145,
        "invalid": 5088.34,
        "risk_points": 30.195,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T13:35:00Z",
        "target1": 5027.95,
        "target2": 4997.755,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5064.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5090.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5039.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5064.34,
        "D_prior_index": 28,
        "H4_prior_index": 172,
        "H1_prior_index": 659,
        "pre_local_low": 5035.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5043.115,
        "D_prior_index": 28,
        "H4_prior_index": 172,
        "H1_prior_index": 659,
        "pre_local_high": 5081.9,
        "confirmation_time": "2026-02-11T17:10:00Z",
        "impulse_extreme": 5085.39,
        "fib50": 5064.253,
        "fib62": 5059.18,
        "entry_mid": 5061.716,
        "invalid": 5043.115,
        "risk_points": 18.601,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T23:10:00Z",
        "target1": 5080.317,
        "target2": 5098.918,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-11T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5068.545,
        "D_prior_index": 28,
        "H4_prior_index": 172,
        "H1_prior_index": 660,
        "pre_local_high": 5078.31,
        "confirmation_time": "2026-02-11T17:05:00Z",
        "impulse_extreme": 5083.375,
        "fib50": 5075.96,
        "fib62": 5074.18,
        "entry_mid": 5075.07,
        "invalid": 5068.545,
        "risk_points": 6.525,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-11T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.92,
        "D_prior_index": 28,
        "H4_prior_index": 173,
        "H1_prior_index": 662,
        "pre_local_high": 5094.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5089.105,
        "D_prior_index": 28,
        "H4_prior_index": 173,
        "H1_prior_index": 663,
        "pre_local_low": 5074.445,
        "confirmation_time": "2026-02-11T23:10:00Z",
        "impulse_extreme": 5053.89,
        "fib50": 5071.497,
        "fib62": 5075.723,
        "entry_mid": 5073.61,
        "invalid": 5089.105,
        "risk_points": 15.495,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T02:00:00Z",
        "target1": 5058.116,
        "target2": 5042.621,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5078.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5090.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-11T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5084.455,
        "D_prior_index": 28,
        "H4_prior_index": 173,
        "H1_prior_index": 664,
        "pre_local_high": 5094.29,
        "confirmation_time": "2026-02-11T23:00:00Z",
        "impulse_extreme": 5095.51,
        "fib50": 5089.983,
        "fib62": 5088.656,
        "entry_mid": 5089.319,
        "invalid": 5084.455,
        "risk_points": 4.864,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T21:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5093.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5069.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-11T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5085.27,
        "D_prior_index": 28,
        "H4_prior_index": 173,
        "H1_prior_index": 664,
        "pre_local_low": 5069.965,
        "confirmation_time": "2026-02-11T23:10:00Z",
        "impulse_extreme": 5053.89,
        "fib50": 5069.58,
        "fib62": 5073.346,
        "entry_mid": 5071.463,
        "invalid": 5085.27,
        "risk_points": 13.807,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-11T23:20:00Z",
        "target1": 5057.656,
        "target2": 5043.848,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5095.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5059.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-11T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-11T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5071.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5064.315,
        "D_prior_index": 29,
        "H4_prior_index": 174,
        "H1_prior_index": 667,
        "pre_local_low": 5045.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5053.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5062.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.25,
        "D_prior_index": 29,
        "H4_prior_index": 175,
        "H1_prior_index": 668,
        "pre_local_low": 5045.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5055.055,
        "D_prior_index": 29,
        "H4_prior_index": 175,
        "H1_prior_index": 668,
        "pre_local_high": 5073.25,
        "confirmation_time": "2026-02-12T05:05:00Z",
        "impulse_extreme": 5077.795,
        "fib50": 5066.425,
        "fib62": 5063.696,
        "entry_mid": 5065.061,
        "invalid": 5055.055,
        "risk_points": 10.006,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T05:30:00Z",
        "target1": 5075.066,
        "target2": 5085.072,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5052.42,
        "D_prior_index": 29,
        "H4_prior_index": 175,
        "H1_prior_index": 670,
        "pre_local_high": 5074.875,
        "confirmation_time": "2026-02-12T05:05:00Z",
        "impulse_extreme": 5077.795,
        "fib50": 5065.108,
        "fib62": 5062.062,
        "entry_mid": 5063.585,
        "invalid": 5052.42,
        "risk_points": 11.165,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T05:30:00Z",
        "target1": 5074.75,
        "target2": 5085.915,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5050.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5064.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5062.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.475,
        "D_prior_index": 29,
        "H4_prior_index": 176,
        "H1_prior_index": 672,
        "pre_local_low": 5051.3,
        "confirmation_time": "2026-02-12T06:30:00Z",
        "impulse_extreme": 5049.7,
        "fib50": 5063.087,
        "fib62": 5066.301,
        "entry_mid": 5064.694,
        "invalid": 5076.475,
        "risk_points": 11.781,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T07:05:00Z",
        "target1": 5052.913,
        "target2": 5041.132,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5047.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5052.0,
        "D_prior_index": 29,
        "H4_prior_index": 176,
        "H1_prior_index": 673,
        "pre_local_high": 5078.105,
        "confirmation_time": "2026-02-12T09:50:00Z",
        "impulse_extreme": 5080.91,
        "fib50": 5066.455,
        "fib62": 5062.986,
        "entry_mid": 5064.72,
        "invalid": 5052.0,
        "risk_points": 12.72,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T10:10:00Z",
        "target1": 5077.441,
        "target2": 5090.161,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5056.8,
        "D_prior_index": 29,
        "H4_prior_index": 176,
        "H1_prior_index": 673,
        "pre_local_high": 5070.385,
        "confirmation_time": "2026-02-12T08:05:00Z",
        "impulse_extreme": 5073.55,
        "fib50": 5065.175,
        "fib62": 5063.165,
        "entry_mid": 5064.17,
        "invalid": 5056.8,
        "risk_points": 7.37,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T08:20:00Z",
        "target1": 5071.54,
        "target2": 5078.91,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5052.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5077.975,
        "D_prior_index": 29,
        "H4_prior_index": 176,
        "H1_prior_index": 675,
        "pre_local_low": 5052.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5080.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5056.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5065.58,
        "D_prior_index": 29,
        "H4_prior_index": 177,
        "H1_prior_index": 677,
        "pre_local_low": 5056.29,
        "confirmation_time": "2026-02-12T12:45:00Z",
        "impulse_extreme": 5053.18,
        "fib50": 5059.38,
        "fib62": 5060.868,
        "entry_mid": 5060.124,
        "invalid": 5065.58,
        "risk_points": 5.456,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T13:05:00Z",
        "target1": 5054.668,
        "target2": 5049.212,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5065.9,
        "D_prior_index": 29,
        "H4_prior_index": 177,
        "H1_prior_index": 677,
        "pre_local_low": 5056.29,
        "confirmation_time": "2026-02-12T12:45:00Z",
        "impulse_extreme": 5053.18,
        "fib50": 5059.54,
        "fib62": 5061.066,
        "entry_mid": 5060.303,
        "invalid": 5065.9,
        "risk_points": 5.597,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T13:05:00Z",
        "target1": 5054.706,
        "target2": 5049.11,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5056.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5068.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5074.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5060.52,
        "D_prior_index": 29,
        "H4_prior_index": 177,
        "H1_prior_index": 679,
        "pre_local_high": 5074.55,
        "confirmation_time": "2026-02-12T13:35:00Z",
        "impulse_extreme": 5076.645,
        "fib50": 5068.583,
        "fib62": 5066.648,
        "entry_mid": 5067.615,
        "invalid": 5060.52,
        "risk_points": 7.095,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T14:00:00Z",
        "target1": 5074.71,
        "target2": 5081.805,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5053.915,
        "D_prior_index": 29,
        "H4_prior_index": 178,
        "H1_prior_index": 680,
        "pre_local_high": 5083.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5071.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5074.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T16:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4969.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4967.25,
        "D_prior_index": 29,
        "H4_prior_index": 178,
        "H1_prior_index": 683,
        "pre_local_low": 4878.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4983.245,
        "D_prior_index": 29,
        "H4_prior_index": 178,
        "H1_prior_index": 683,
        "pre_local_low": 4878.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4906.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4952.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4944.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4958.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4911.825,
        "D_prior_index": 29,
        "H4_prior_index": 179,
        "H1_prior_index": 687,
        "pre_local_high": 4958.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4924.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-12T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4926.455,
        "D_prior_index": 29,
        "H4_prior_index": 179,
        "H1_prior_index": 687,
        "pre_local_low": 4911.215,
        "confirmation_time": "2026-02-12T23:00:00Z",
        "impulse_extreme": 4888.315,
        "fib50": 4907.385,
        "fib62": 4911.962,
        "entry_mid": 4909.673,
        "invalid": 4926.455,
        "risk_points": 16.782,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-12T23:05:00Z",
        "target1": 4892.892,
        "target2": 4876.11,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-12T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4915.905,
        "D_prior_index": 29,
        "H4_prior_index": 179,
        "H1_prior_index": 687,
        "pre_local_high": 4946.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-12T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4927.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-12T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4906.71,
        "D_prior_index": 30,
        "H4_prior_index": 180,
        "H1_prior_index": 688,
        "pre_local_high": 4928.76,
        "confirmation_time": "2026-02-13T00:05:00Z",
        "impulse_extreme": 4945.945,
        "fib50": 4926.327,
        "fib62": 4921.619,
        "entry_mid": 4923.973,
        "invalid": 4906.71,
        "risk_points": 17.263,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-12T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-12T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4906.14,
        "D_prior_index": 30,
        "H4_prior_index": 180,
        "H1_prior_index": 688,
        "pre_local_high": 4928.76,
        "confirmation_time": "2026-02-13T00:05:00Z",
        "impulse_extreme": 4945.945,
        "fib50": 4926.042,
        "fib62": 4921.266,
        "entry_mid": 4923.654,
        "invalid": 4906.14,
        "risk_points": 17.514,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4932.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4988.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4972.705,
        "D_prior_index": 30,
        "H4_prior_index": 181,
        "H1_prior_index": 691,
        "pre_local_high": 4988.825,
        "confirmation_time": "2026-02-13T04:15:00Z",
        "impulse_extreme": 4997.555,
        "fib50": 4985.13,
        "fib62": 4982.148,
        "entry_mid": 4983.639,
        "invalid": 4972.705,
        "risk_points": 10.934,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T04:25:00Z",
        "target1": 4994.573,
        "target2": 5005.507,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4973.675,
        "D_prior_index": 30,
        "H4_prior_index": 181,
        "H1_prior_index": 691,
        "pre_local_high": 4989.48,
        "confirmation_time": "2026-02-13T04:15:00Z",
        "impulse_extreme": 4997.555,
        "fib50": 4985.615,
        "fib62": 4982.749,
        "entry_mid": 4984.182,
        "invalid": 4973.675,
        "risk_points": 10.507,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T04:25:00Z",
        "target1": 4994.689,
        "target2": 5005.197,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4989.48,
        "D_prior_index": 30,
        "H4_prior_index": 181,
        "H1_prior_index": 691,
        "pre_local_low": 4926.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4972.315,
        "D_prior_index": 30,
        "H4_prior_index": 181,
        "H1_prior_index": 691,
        "pre_local_high": 4989.48,
        "confirmation_time": "2026-02-13T04:15:00Z",
        "impulse_extreme": 4997.555,
        "fib50": 4984.935,
        "fib62": 4981.906,
        "entry_mid": 4983.421,
        "invalid": 4972.315,
        "risk_points": 11.106,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T04:30:00Z",
        "target1": 4994.526,
        "target2": 5005.632,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4991.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4975.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4997.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4972.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4964.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4986.555,
        "D_prior_index": 30,
        "H4_prior_index": 181,
        "H1_prior_index": 694,
        "pre_local_low": 4964.915,
        "confirmation_time": "2026-02-13T05:40:00Z",
        "impulse_extreme": 4959.52,
        "fib50": 4973.038,
        "fib62": 4976.282,
        "entry_mid": 4974.66,
        "invalid": 4986.555,
        "risk_points": 11.895,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T07:15:00Z",
        "target1": 4962.764,
        "target2": 4950.869,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4962.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4982.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4989.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4970.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4987.075,
        "D_prior_index": 30,
        "H4_prior_index": 182,
        "H1_prior_index": 697,
        "pre_local_low": 4951.285,
        "confirmation_time": "2026-02-13T10:55:00Z",
        "impulse_extreme": 4947.17,
        "fib50": 4967.122,
        "fib62": 4971.911,
        "entry_mid": 4969.517,
        "invalid": 4987.075,
        "risk_points": 17.558,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T12:15:00Z",
        "target1": 4951.959,
        "target2": 4934.4,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4961.49,
        "D_prior_index": 30,
        "H4_prior_index": 182,
        "H1_prior_index": 698,
        "pre_local_high": 4989.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4976.84,
        "D_prior_index": 30,
        "H4_prior_index": 182,
        "H1_prior_index": 698,
        "pre_local_low": 4961.49,
        "confirmation_time": "2026-02-13T10:55:00Z",
        "impulse_extreme": 4947.17,
        "fib50": 4962.005,
        "fib62": 4965.565,
        "entry_mid": 4963.785,
        "invalid": 4976.84,
        "risk_points": 13.055,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T12:05:00Z",
        "target1": 4950.73,
        "target2": 4937.676,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4967.185,
        "D_prior_index": 30,
        "H4_prior_index": 183,
        "H1_prior_index": 699,
        "pre_local_high": 4987.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4978.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4966.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4980.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4941.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4933.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4973.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4974.23,
        "D_prior_index": 30,
        "H4_prior_index": 183,
        "H1_prior_index": 701,
        "pre_local_low": 4933.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4976.375,
        "D_prior_index": 30,
        "H4_prior_index": 183,
        "H1_prior_index": 702,
        "pre_local_low": 4933.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4957.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.07,
        "D_prior_index": 30,
        "H4_prior_index": 184,
        "H1_prior_index": 703,
        "pre_local_low": 4957.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.22,
        "D_prior_index": 30,
        "H4_prior_index": 184,
        "H1_prior_index": 704,
        "pre_local_low": 4957.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5011.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5020.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5022.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5006.1,
        "D_prior_index": 30,
        "H4_prior_index": 184,
        "H1_prior_index": 706,
        "pre_local_high": 5033.735,
        "confirmation_time": "2026-02-13T19:05:00Z",
        "impulse_extreme": 5046.02,
        "fib50": 5026.06,
        "fib62": 5021.27,
        "entry_mid": 5023.665,
        "invalid": 5006.1,
        "risk_points": 17.565,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T19:55:00Z",
        "target1": 5041.23,
        "target2": 5058.794,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-13T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5015.485,
        "D_prior_index": 30,
        "H4_prior_index": 185,
        "H1_prior_index": 707,
        "pre_local_high": 5033.735,
        "confirmation_time": "2026-02-13T19:05:00Z",
        "impulse_extreme": 5046.02,
        "fib50": 5030.753,
        "fib62": 5027.088,
        "entry_mid": 5028.92,
        "invalid": 5015.485,
        "risk_points": 13.435,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-13T19:50:00Z",
        "target1": 5042.356,
        "target2": 5055.791,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5030.88,
        "D_prior_index": 30,
        "H4_prior_index": 185,
        "H1_prior_index": 707,
        "pre_local_low": 5006.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5035.55,
        "D_prior_index": 30,
        "H4_prior_index": 185,
        "H1_prior_index": 707,
        "pre_local_low": 5006.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5024.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5034.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5021.705,
        "D_prior_index": 30,
        "H4_prior_index": 185,
        "H1_prior_index": 709,
        "pre_local_high": 5046.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-13T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5034.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-13T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-13T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5036.2,
        "D_prior_index": 30,
        "H4_prior_index": 185,
        "H1_prior_index": 710,
        "pre_local_low": 5021.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-15T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-15T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5013.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5000.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5022.07,
        "D_prior_index": 31,
        "H4_prior_index": 186,
        "H1_prior_index": 712,
        "pre_local_low": 5000.13,
        "confirmation_time": "2026-02-16T02:45:00Z",
        "impulse_extreme": 4994.925,
        "fib50": 5008.497,
        "fib62": 5011.755,
        "entry_mid": 5010.126,
        "invalid": 5022.07,
        "risk_points": 11.944,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T07:45:00Z",
        "target1": 4998.182,
        "target2": 4986.239,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5006.995,
        "D_prior_index": 31,
        "H4_prior_index": 186,
        "H1_prior_index": 713,
        "pre_local_high": 5031.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5025.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T02:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4988.645,
        "D_prior_index": 31,
        "H4_prior_index": 187,
        "H1_prior_index": 715,
        "pre_local_high": 5031.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T04:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4973.42,
        "D_prior_index": 31,
        "H4_prior_index": 187,
        "H1_prior_index": 716,
        "pre_local_high": 5025.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4973.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4980.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-16T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4964.865,
        "D_prior_index": 31,
        "H4_prior_index": 187,
        "H1_prior_index": 717,
        "pre_local_high": 4998.17,
        "confirmation_time": "2026-02-16T06:40:00Z",
        "impulse_extreme": 5003.22,
        "fib50": 4984.042,
        "fib62": 4979.44,
        "entry_mid": 4981.741,
        "invalid": 4964.865,
        "risk_points": 16.876,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4983.125,
        "D_prior_index": 31,
        "H4_prior_index": 187,
        "H1_prior_index": 717,
        "pre_local_high": 4993.915,
        "confirmation_time": "2026-02-16T06:35:00Z",
        "impulse_extreme": 4997.71,
        "fib50": 4990.417,
        "fib62": 4988.667,
        "entry_mid": 4989.542,
        "invalid": 4983.125,
        "risk_points": 6.417,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T07:05:00Z",
        "target1": 4995.96,
        "target2": 5002.377,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4990.325,
        "D_prior_index": 31,
        "H4_prior_index": 187,
        "H1_prior_index": 717,
        "pre_local_low": 4964.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4992.995,
        "D_prior_index": 31,
        "H4_prior_index": 188,
        "H1_prior_index": 718,
        "pre_local_low": 4964.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4988.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T08:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5013.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T08:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4995.86,
        "D_prior_index": 31,
        "H4_prior_index": 188,
        "H1_prior_index": 720,
        "pre_local_high": 5013.33,
        "confirmation_time": "2026-02-16T09:15:00Z",
        "impulse_extreme": 5016.565,
        "fib50": 5006.212,
        "fib62": 5003.728,
        "entry_mid": 5004.97,
        "invalid": 4995.86,
        "risk_points": 9.11,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T10:20:00Z",
        "target1": 5014.08,
        "target2": 5023.191,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.885,
        "D_prior_index": 31,
        "H4_prior_index": 188,
        "H1_prior_index": 720,
        "pre_local_low": 4988.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5010.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.62,
        "D_prior_index": 31,
        "H4_prior_index": 188,
        "H1_prior_index": 721,
        "pre_local_high": 5016.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5017.445,
        "D_prior_index": 31,
        "H4_prior_index": 188,
        "H1_prior_index": 721,
        "pre_local_low": 4995.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5000.27,
        "D_prior_index": 31,
        "H4_prior_index": 189,
        "H1_prior_index": 722,
        "pre_local_high": 5017.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5010.875,
        "D_prior_index": 31,
        "H4_prior_index": 189,
        "H1_prior_index": 722,
        "pre_local_low": 5000.27,
        "confirmation_time": "2026-02-16T12:10:00Z",
        "impulse_extreme": 4997.59,
        "fib50": 5004.233,
        "fib62": 5005.827,
        "entry_mid": 5005.03,
        "invalid": 5010.875,
        "risk_points": 5.845,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T12:30:00Z",
        "target1": 4999.184,
        "target2": 4993.339,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5002.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.23,
        "D_prior_index": 31,
        "H4_prior_index": 189,
        "H1_prior_index": 723,
        "pre_local_low": 4999.03,
        "confirmation_time": "2026-02-16T12:10:00Z",
        "impulse_extreme": 4997.59,
        "fib50": 5002.91,
        "fib62": 5004.187,
        "entry_mid": 5003.548,
        "invalid": 5008.23,
        "risk_points": 4.682,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T12:30:00Z",
        "target1": 4998.867,
        "target2": 4994.185,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4992.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4989.64,
        "D_prior_index": 31,
        "H4_prior_index": 189,
        "H1_prior_index": 725,
        "pre_local_high": 5008.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4999.66,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 726,
        "pre_local_low": 4989.64,
        "confirmation_time": "2026-02-16T14:40:00Z",
        "impulse_extreme": 4983.465,
        "fib50": 4991.562,
        "fib62": 4993.506,
        "entry_mid": 4992.534,
        "invalid": 4999.66,
        "risk_points": 7.126,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T17:00:00Z",
        "target1": 4985.408,
        "target2": 4978.283,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4981.765,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 726,
        "pre_local_high": 5003.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4975.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4983.295,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 727,
        "pre_local_low": 4969.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4973.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4985.22,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 728,
        "pre_local_high": 4990.45,
        "confirmation_time": "2026-02-16T17:00:00Z",
        "impulse_extreme": 4994.45,
        "fib50": 4989.835,
        "fib62": 4988.727,
        "entry_mid": 4989.281,
        "invalid": 4985.22,
        "risk_points": 4.061,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T18:00:00Z",
        "target1": 4993.342,
        "target2": 4997.404,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.195,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 729,
        "pre_local_low": 4973.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-16T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4990.235,
        "D_prior_index": 31,
        "H4_prior_index": 190,
        "H1_prior_index": 729,
        "pre_local_high": 4996.195,
        "confirmation_time": "2026-02-16T18:45:00Z",
        "impulse_extreme": 4997.8,
        "fib50": 4994.017,
        "fib62": 4993.11,
        "entry_mid": 4993.564,
        "invalid": 4990.235,
        "risk_points": 3.329,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-16T19:10:00Z",
        "target1": 4996.892,
        "target2": 5000.221,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4988.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4991.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4997.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4990.425,
        "D_prior_index": 31,
        "H4_prior_index": 191,
        "H1_prior_index": 731,
        "pre_local_high": 4997.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.525,
        "D_prior_index": 31,
        "H4_prior_index": 191,
        "H1_prior_index": 731,
        "pre_local_low": 4988.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4986.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4999.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-16T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4985.185,
        "D_prior_index": 32,
        "H4_prior_index": 192,
        "H1_prior_index": 732,
        "pre_local_high": 4999.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-16T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-16T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5001.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4922.895,
        "D_prior_index": 32,
        "H4_prior_index": 192,
        "H1_prior_index": 734,
        "pre_local_high": 5001.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4954.875,
        "D_prior_index": 32,
        "H4_prior_index": 193,
        "H1_prior_index": 735,
        "pre_local_high": 4979.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4971.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4959.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-17T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4970.215,
        "D_prior_index": 32,
        "H4_prior_index": 193,
        "H1_prior_index": 736,
        "pre_local_low": 4944.545,
        "confirmation_time": "2026-02-17T05:10:00Z",
        "impulse_extreme": 4927.205,
        "fib50": 4948.71,
        "fib62": 4953.871,
        "entry_mid": 4951.291,
        "invalid": 4970.215,
        "risk_points": 18.924,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4960.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T04:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4950.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4949.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-17T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4954.49,
        "D_prior_index": 32,
        "H4_prior_index": 193,
        "H1_prior_index": 738,
        "pre_local_low": 4946.71,
        "confirmation_time": "2026-02-17T05:05:00Z",
        "impulse_extreme": 4937.325,
        "fib50": 4945.907,
        "fib62": 4947.967,
        "entry_mid": 4946.937,
        "invalid": 4954.49,
        "risk_points": 7.553,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4886.6,
        "D_prior_index": 32,
        "H4_prior_index": 194,
        "H1_prior_index": 739,
        "pre_local_high": 4955.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4917.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4904.23,
        "D_prior_index": 32,
        "H4_prior_index": 194,
        "H1_prior_index": 740,
        "pre_local_high": 4917.38,
        "confirmation_time": "2026-02-17T07:35:00Z",
        "impulse_extreme": 4920.765,
        "fib50": 4912.497,
        "fib62": 4910.513,
        "entry_mid": 4911.505,
        "invalid": 4904.23,
        "risk_points": 7.275,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-17T10:50:00Z",
        "target1": 4918.781,
        "target2": 4926.056,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4922.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4929.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4916.7,
        "D_prior_index": 32,
        "H4_prior_index": 194,
        "H1_prior_index": 742,
        "pre_local_high": 4930.425,
        "confirmation_time": "2026-02-17T10:10:00Z",
        "impulse_extreme": 4939.4,
        "fib50": 4928.05,
        "fib62": 4925.326,
        "entry_mid": 4926.688,
        "invalid": 4916.7,
        "risk_points": 9.988,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-17T10:30:00Z",
        "target1": 4936.676,
        "target2": 4946.664,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4924.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4913.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4922.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4921.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4930.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4933.525,
        "D_prior_index": 32,
        "H4_prior_index": 195,
        "H1_prior_index": 745,
        "pre_local_high": 4944.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4911.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4908.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T13:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4924.625,
        "D_prior_index": 32,
        "H4_prior_index": 195,
        "H1_prior_index": 746,
        "pre_local_low": 4908.005,
        "confirmation_time": "2026-02-17T13:55:00Z",
        "impulse_extreme": 4869.965,
        "fib50": 4897.295,
        "fib62": 4903.854,
        "entry_mid": 4900.575,
        "invalid": 4924.625,
        "risk_points": 24.05,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-17T14:05:00Z",
        "target1": 4876.524,
        "target2": 4852.474,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4842.6,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 747,
        "pre_local_high": 4944.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4904.745,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 747,
        "pre_local_low": 4842.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4907.235,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 747,
        "pre_local_low": 4842.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4849.17,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 748,
        "pre_local_high": 4924.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4877.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4852.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4868.585,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 750,
        "pre_local_low": 4850.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4853.96,
        "D_prior_index": 32,
        "H4_prior_index": 196,
        "H1_prior_index": 750,
        "pre_local_high": 4894.005,
        "confirmation_time": "2026-02-17T18:50:00Z",
        "impulse_extreme": 4897.045,
        "fib50": 4875.503,
        "fib62": 4870.332,
        "entry_mid": 4872.917,
        "invalid": 4853.96,
        "risk_points": 18.957,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-17T20:00:00Z",
        "target1": 4891.875,
        "target2": 4910.832,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4872.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4895.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4876.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4873.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4883.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4884.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-17T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4875.145,
        "D_prior_index": 32,
        "H4_prior_index": 197,
        "H1_prior_index": 754,
        "pre_local_high": 4894.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4884.47,
        "D_prior_index": 32,
        "H4_prior_index": 197,
        "H1_prior_index": 754,
        "pre_local_low": 4873.59,
        "confirmation_time": "2026-02-17T23:00:00Z",
        "impulse_extreme": 4871.07,
        "fib50": 4877.77,
        "fib62": 4879.378,
        "entry_mid": 4878.574,
        "invalid": 4884.47,
        "risk_points": 5.896,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-17T23:10:00Z",
        "target1": 4872.678,
        "target2": 4866.782,
        "mechanical_outcome": "ambiguous_same_bar"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4886.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4865.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-17T23:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4884.845,
        "D_prior_index": 33,
        "H4_prior_index": 198,
        "H1_prior_index": 755,
        "pre_local_low": 4865.805,
        "confirmation_time": "2026-02-17T23:45:00Z",
        "impulse_extreme": 4863.965,
        "fib50": 4874.405,
        "fib62": 4876.911,
        "entry_mid": 4875.658,
        "invalid": 4884.845,
        "risk_points": 9.187,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-18T00:30:00Z",
        "target1": 4866.471,
        "target2": 4857.283,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-17T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-17T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4866.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4858.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4883.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4891.78,
        "D_prior_index": 33,
        "H4_prior_index": 198,
        "H1_prior_index": 757,
        "pre_local_low": 4854.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4893.55,
        "D_prior_index": 33,
        "H4_prior_index": 198,
        "H1_prior_index": 757,
        "pre_local_low": 4854.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-18T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4883.04,
        "D_prior_index": 33,
        "H4_prior_index": 198,
        "H1_prior_index": 757,
        "pre_local_high": 4893.55,
        "confirmation_time": "2026-02-18T02:00:00Z",
        "impulse_extreme": 4897.325,
        "fib50": 4890.182,
        "fib62": 4888.468,
        "entry_mid": 4889.325,
        "invalid": 4883.04,
        "risk_points": 6.285,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4904.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4907.515,
        "D_prior_index": 33,
        "H4_prior_index": 199,
        "H1_prior_index": 758,
        "pre_local_low": 4881.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4920.98,
        "D_prior_index": 33,
        "H4_prior_index": 199,
        "H1_prior_index": 759,
        "pre_local_low": 4883.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4922.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4937.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4940.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4929.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4939.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4939.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4925.21,
        "D_prior_index": 33,
        "H4_prior_index": 200,
        "H1_prior_index": 762,
        "pre_local_high": 4940.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4936.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T07:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4930.08,
        "D_prior_index": 33,
        "H4_prior_index": 200,
        "H1_prior_index": 763,
        "pre_local_high": 4939.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4926.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4913.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4916.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4924.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4917.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-18T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4906.425,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 767,
        "pre_local_high": 4924.755,
        "confirmation_time": "2026-02-18T12:15:00Z",
        "impulse_extreme": 4929.49,
        "fib50": 4917.958,
        "fib62": 4915.19,
        "entry_mid": 4916.574,
        "invalid": 4906.425,
        "risk_points": 10.149,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-18T12:30:00Z",
        "target1": 4926.722,
        "target2": 4936.871,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4929.49,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 768,
        "pre_local_low": 4906.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-18T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4917.715,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 768,
        "pre_local_high": 4929.49,
        "confirmation_time": "2026-02-18T12:45:00Z",
        "impulse_extreme": 4931.32,
        "fib50": 4924.517,
        "fib62": 4922.885,
        "entry_mid": 4923.701,
        "invalid": 4917.715,
        "risk_points": 5.986,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4931.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4959.515,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 769,
        "pre_local_low": 4906.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4952.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4969.1,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 769,
        "pre_local_low": 4909.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-18T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4948.99,
        "D_prior_index": 33,
        "H4_prior_index": 201,
        "H1_prior_index": 769,
        "pre_local_high": 4969.1,
        "confirmation_time": "2026-02-18T14:30:00Z",
        "impulse_extreme": 4979.27,
        "fib50": 4964.13,
        "fib62": 4960.496,
        "entry_mid": 4962.313,
        "invalid": 4948.99,
        "risk_points": 13.323,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4963.71,
        "D_prior_index": 33,
        "H4_prior_index": 202,
        "H1_prior_index": 770,
        "pre_local_low": 4920.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5009.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4994.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4991.445,
        "D_prior_index": 33,
        "H4_prior_index": 202,
        "H1_prior_index": 772,
        "pre_local_high": 5009.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-18T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5010.915,
        "D_prior_index": 33,
        "H4_prior_index": 202,
        "H1_prior_index": 772,
        "pre_local_low": 4991.445,
        "confirmation_time": "2026-02-18T18:25:00Z",
        "impulse_extreme": 4986.725,
        "fib50": 4998.82,
        "fib62": 5001.723,
        "entry_mid": 5000.271,
        "invalid": 5010.915,
        "risk_points": 10.644,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4993.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-18T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5000.825,
        "D_prior_index": 33,
        "H4_prior_index": 202,
        "H1_prior_index": 773,
        "pre_local_low": 4991.445,
        "confirmation_time": "2026-02-18T18:25:00Z",
        "impulse_extreme": 4986.725,
        "fib50": 4993.775,
        "fib62": 4995.467,
        "entry_mid": 4994.621,
        "invalid": 5000.825,
        "risk_points": 6.204,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-18T19:00:00Z",
        "target1": 4988.417,
        "target2": 4982.213,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T19:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4995.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4984.625,
        "D_prior_index": 33,
        "H4_prior_index": 203,
        "H1_prior_index": 775,
        "pre_local_low": 4972.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4975.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-18T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4986.375,
        "D_prior_index": 33,
        "H4_prior_index": 203,
        "H1_prior_index": 777,
        "pre_local_low": 4972.87,
        "confirmation_time": "2026-02-18T23:00:00Z",
        "impulse_extreme": 4972.36,
        "fib50": 4979.368,
        "fib62": 4981.049,
        "entry_mid": 4980.208,
        "invalid": 4986.375,
        "risk_points": 6.167,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-18T23:10:00Z",
        "target1": 4974.042,
        "target2": 4967.875,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-18T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4980.45,
        "D_prior_index": 33,
        "H4_prior_index": 203,
        "H1_prior_index": 777,
        "pre_local_high": 4987.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4966.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-18T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4980.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-18T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-18T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4988.86,
        "D_prior_index": 34,
        "H4_prior_index": 204,
        "H1_prior_index": 778,
        "pre_local_low": 4966.715,
        "confirmation_time": "2026-02-19T00:00:00Z",
        "impulse_extreme": 4961.295,
        "fib50": 4975.077,
        "fib62": 4978.385,
        "entry_mid": 4976.731,
        "invalid": 4988.86,
        "risk_points": 12.129,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T01:50:00Z",
        "target1": 4964.603,
        "target2": 4952.474,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4973.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4977.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4965.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-19T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4966.475,
        "D_prior_index": 34,
        "H4_prior_index": 205,
        "H1_prior_index": 782,
        "pre_local_high": 4977.465,
        "confirmation_time": "2026-02-19T03:45:00Z",
        "impulse_extreme": 4982.33,
        "fib50": 4974.403,
        "fib62": 4972.5,
        "entry_mid": 4973.451,
        "invalid": 4966.475,
        "risk_points": 6.976,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4971.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4978.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4985.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T04:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4977.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-19T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5021.805,
        "D_prior_index": 34,
        "H4_prior_index": 206,
        "H1_prior_index": 786,
        "pre_local_low": 4987.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5015.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5014.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.395,
        "D_prior_index": 34,
        "H4_prior_index": 206,
        "H1_prior_index": 786,
        "pre_local_low": 4995.515,
        "confirmation_time": "2026-02-19T10:00:00Z",
        "impulse_extreme": 4989.03,
        "fib50": 5004.712,
        "fib62": 5008.476,
        "entry_mid": 5006.594,
        "invalid": 5020.395,
        "risk_points": 13.801,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:50:00Z",
        "target1": 4992.794,
        "target2": 4978.993,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5022.17,
        "D_prior_index": 34,
        "H4_prior_index": 206,
        "H1_prior_index": 787,
        "pre_local_low": 5006.31,
        "confirmation_time": "2026-02-19T09:25:00Z",
        "impulse_extreme": 4999.67,
        "fib50": 5010.92,
        "fib62": 5013.62,
        "entry_mid": 5012.27,
        "invalid": 5022.17,
        "risk_points": 9.9,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T15:25:00Z",
        "target1": 5002.37,
        "target2": 4992.47,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.565,
        "D_prior_index": 34,
        "H4_prior_index": 206,
        "H1_prior_index": 788,
        "pre_local_low": 5006.31,
        "confirmation_time": "2026-02-19T09:25:00Z",
        "impulse_extreme": 4999.67,
        "fib50": 5010.118,
        "fib62": 5012.625,
        "entry_mid": 5011.371,
        "invalid": 5020.565,
        "risk_points": 9.194,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:55:00Z",
        "target1": 5002.177,
        "target2": 4992.984,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-19T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4993.215,
        "D_prior_index": 34,
        "H4_prior_index": 206,
        "H1_prior_index": 788,
        "pre_local_high": 5022.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-19T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4981.45,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 789,
        "pre_local_high": 5020.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4995.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4996.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4977.98,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 790,
        "pre_local_high": 4996.48,
        "confirmation_time": "2026-02-19T13:55:00Z",
        "impulse_extreme": 4998.81,
        "fib50": 4988.395,
        "fib62": 4985.895,
        "entry_mid": 4987.145,
        "invalid": 4977.98,
        "risk_points": 9.165,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:00:00Z",
        "target1": 4996.31,
        "target2": 5005.476,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4983.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4992.905,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 791,
        "pre_local_low": 4977.98,
        "confirmation_time": "2026-02-19T14:10:00Z",
        "impulse_extreme": 4972.26,
        "fib50": 4982.583,
        "fib62": 4985.06,
        "entry_mid": 4983.821,
        "invalid": 4992.905,
        "risk_points": 9.084,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:35:00Z",
        "target1": 4974.737,
        "target2": 4965.654,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4980.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4974.52,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 792,
        "pre_local_high": 4992.905,
        "confirmation_time": "2026-02-19T13:35:00Z",
        "impulse_extreme": 4995.41,
        "fib50": 4984.965,
        "fib62": 4982.458,
        "entry_mid": 4983.712,
        "invalid": 4974.52,
        "risk_points": 9.192,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:00:00Z",
        "target1": 4992.903,
        "target2": 5002.095,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4987.755,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 792,
        "pre_local_low": 4974.52,
        "confirmation_time": "2026-02-19T14:10:00Z",
        "impulse_extreme": 4972.26,
        "fib50": 4980.007,
        "fib62": 4981.867,
        "entry_mid": 4980.937,
        "invalid": 4987.755,
        "risk_points": 6.818,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:15:00Z",
        "target1": 4974.119,
        "target2": 4967.302,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4971.125,
        "D_prior_index": 34,
        "H4_prior_index": 207,
        "H1_prior_index": 792,
        "pre_local_high": 4992.905,
        "confirmation_time": "2026-02-19T13:35:00Z",
        "impulse_extreme": 4995.41,
        "fib50": 4983.267,
        "fib62": 4980.353,
        "entry_mid": 4981.81,
        "invalid": 4971.125,
        "risk_points": 10.685,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T14:05:00Z",
        "target1": 4992.496,
        "target2": 5003.181,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4998.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4972.135,
        "D_prior_index": 34,
        "H4_prior_index": 208,
        "H1_prior_index": 793,
        "pre_local_high": 4998.81,
        "confirmation_time": "2026-02-19T14:45:00Z",
        "impulse_extreme": 4999.78,
        "fib50": 4985.958,
        "fib62": 4982.64,
        "entry_mid": 4984.299,
        "invalid": 4972.135,
        "risk_points": 12.164,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T17:50:00Z",
        "target1": 4996.463,
        "target2": 5008.626,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4963.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T15:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.095,
        "D_prior_index": 34,
        "H4_prior_index": 208,
        "H1_prior_index": 794,
        "pre_local_high": 5010.44,
        "confirmation_time": "2026-02-19T15:25:00Z",
        "impulse_extreme": 5016.44,
        "fib50": 5006.267,
        "fib62": 5003.826,
        "entry_mid": 5005.047,
        "invalid": 4996.095,
        "risk_points": 8.952,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T16:05:00Z",
        "target1": 5013.999,
        "target2": 5022.95,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5022.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5009.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5001.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4986.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-19T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4979.735,
        "D_prior_index": 34,
        "H4_prior_index": 209,
        "H1_prior_index": 797,
        "pre_local_high": 5009.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T18:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4989.7,
        "D_prior_index": 34,
        "H4_prior_index": 209,
        "H1_prior_index": 797,
        "pre_local_low": 4979.735,
        "confirmation_time": "2026-02-19T18:20:00Z",
        "impulse_extreme": 4978.52,
        "fib50": 4984.11,
        "fib62": 4985.452,
        "entry_mid": 4984.781,
        "invalid": 4989.7,
        "risk_points": 4.919,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-19T18:50:00Z",
        "target1": 4979.862,
        "target2": 4974.942,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4990.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-19T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4997.97,
        "D_prior_index": 34,
        "H4_prior_index": 209,
        "H1_prior_index": 800,
        "pre_local_high": 5004.225,
        "confirmation_time": "2026-02-19T23:05:00Z",
        "impulse_extreme": 5008.24,
        "fib50": 5003.105,
        "fib62": 5001.873,
        "entry_mid": 5002.489,
        "invalid": 4997.97,
        "risk_points": 4.519,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-19T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5004.225,
        "D_prior_index": 34,
        "H4_prior_index": 209,
        "H1_prior_index": 800,
        "pre_local_low": 4978.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4993.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-19T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5000.02,
        "D_prior_index": 34,
        "H4_prior_index": 209,
        "H1_prior_index": 800,
        "pre_local_low": 4988.35,
        "confirmation_time": "2026-02-19T23:55:00Z",
        "impulse_extreme": 4985.56,
        "fib50": 4992.79,
        "fib62": 4994.525,
        "entry_mid": 4993.658,
        "invalid": 5000.02,
        "risk_points": 6.362,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T00:00:00Z",
        "target1": 4987.295,
        "target2": 4980.933,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-19T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-19T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-20T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4985.435,
        "D_prior_index": 35,
        "H4_prior_index": 210,
        "H1_prior_index": 802,
        "pre_local_high": 5008.24,
        "confirmation_time": "2026-02-20T01:00:00Z",
        "impulse_extreme": 5012.59,
        "fib50": 4999.013,
        "fib62": 4995.754,
        "entry_mid": 4997.383,
        "invalid": 4985.435,
        "risk_points": 11.948,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T01:25:00Z",
        "target1": 5009.331,
        "target2": 5021.28,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4987.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.44,
        "D_prior_index": 35,
        "H4_prior_index": 210,
        "H1_prior_index": 802,
        "pre_local_low": 4985.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4995.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4992.9,
        "D_prior_index": 35,
        "H4_prior_index": 211,
        "H1_prior_index": 804,
        "pre_local_high": 5014.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5007.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4989.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4998.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-20T03:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4999.265,
        "D_prior_index": 35,
        "H4_prior_index": 211,
        "H1_prior_index": 805,
        "pre_local_low": 4989.95,
        "confirmation_time": "2026-02-20T03:40:00Z",
        "impulse_extreme": 4981.67,
        "fib50": 4990.468,
        "fib62": 4992.579,
        "entry_mid": 4991.523,
        "invalid": 4999.265,
        "risk_points": 7.742,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T03:45:00Z",
        "target1": 4983.781,
        "target2": 4976.04,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4998.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-20T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4997.915,
        "D_prior_index": 35,
        "H4_prior_index": 211,
        "H1_prior_index": 807,
        "pre_local_high": 5005.975,
        "confirmation_time": "2026-02-20T05:45:00Z",
        "impulse_extreme": 5007.42,
        "fib50": 5002.667,
        "fib62": 5001.527,
        "entry_mid": 5002.097,
        "invalid": 4997.915,
        "risk_points": 4.182,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5004.9,
        "D_prior_index": 35,
        "H4_prior_index": 211,
        "H1_prior_index": 807,
        "pre_local_low": 4986.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5020.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T06:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5030.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-20T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5015.755,
        "D_prior_index": 35,
        "H4_prior_index": 212,
        "H1_prior_index": 809,
        "pre_local_high": 5030.145,
        "confirmation_time": "2026-02-20T08:50:00Z",
        "impulse_extreme": 5030.61,
        "fib50": 5023.182,
        "fib62": 5021.4,
        "entry_mid": 5022.291,
        "invalid": 5015.755,
        "risk_points": 6.536,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T10:05:00Z",
        "target1": 5028.827,
        "target2": 5035.364,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5004.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5042.74,
        "D_prior_index": 35,
        "H4_prior_index": 212,
        "H1_prior_index": 811,
        "pre_local_low": 5004.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5025.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5022.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5033.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-20T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5013.84,
        "D_prior_index": 35,
        "H4_prior_index": 213,
        "H1_prior_index": 814,
        "pre_local_high": 5038.66,
        "confirmation_time": "2026-02-20T13:45:00Z",
        "impulse_extreme": 5042.47,
        "fib50": 5028.155,
        "fib62": 5024.719,
        "entry_mid": 5026.437,
        "invalid": 5013.84,
        "risk_points": 12.597,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T15:00:00Z",
        "target1": 5039.034,
        "target2": 5051.632,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-20T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5007.285,
        "D_prior_index": 35,
        "H4_prior_index": 213,
        "H1_prior_index": 814,
        "pre_local_high": 5036.91,
        "confirmation_time": "2026-02-20T13:45:00Z",
        "impulse_extreme": 5042.47,
        "fib50": 5024.878,
        "fib62": 5020.655,
        "entry_mid": 5022.766,
        "invalid": 5007.285,
        "risk_points": 15.481,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-20T15:00:00Z",
        "target1": 5038.248,
        "target2": 5053.729,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5026.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5028.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5018.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5032.06,
        "D_prior_index": 35,
        "H4_prior_index": 213,
        "H1_prior_index": 815,
        "pre_local_low": 5007.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-20T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5037.74,
        "D_prior_index": 35,
        "H4_prior_index": 214,
        "H1_prior_index": 816,
        "pre_local_high": 5052.365,
        "confirmation_time": "2026-02-20T14:40:00Z",
        "impulse_extreme": 5054.41,
        "fib50": 5046.075,
        "fib62": 5044.075,
        "entry_mid": 5045.075,
        "invalid": 5037.74,
        "risk_points": 7.335,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T15:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5064.33,
        "D_prior_index": 35,
        "H4_prior_index": 214,
        "H1_prior_index": 817,
        "pre_local_low": 5015.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5052.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5056.69,
        "D_prior_index": 35,
        "H4_prior_index": 214,
        "H1_prior_index": 818,
        "pre_local_low": 4990.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.59,
        "D_prior_index": 35,
        "H4_prior_index": 214,
        "H1_prior_index": 819,
        "pre_local_low": 5011.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5070.14,
        "D_prior_index": 35,
        "H4_prior_index": 214,
        "H1_prior_index": 819,
        "pre_local_low": 5036.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5066.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T18:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5075.16,
        "D_prior_index": 35,
        "H4_prior_index": 215,
        "H1_prior_index": 820,
        "pre_local_low": 5053.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5075.42,
        "D_prior_index": 35,
        "H4_prior_index": 215,
        "H1_prior_index": 821,
        "pre_local_low": 5053.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-20T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5068.785,
        "D_prior_index": 35,
        "H4_prior_index": 215,
        "H1_prior_index": 821,
        "pre_local_high": 5076.465,
        "confirmation_time": "2026-02-20T19:55:00Z",
        "impulse_extreme": 5079.81,
        "fib50": 5074.298,
        "fib62": 5072.975,
        "entry_mid": 5073.636,
        "invalid": 5068.785,
        "risk_points": 4.851,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5075.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-20T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5081.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5087.405,
        "D_prior_index": 35,
        "H4_prior_index": 215,
        "H1_prior_index": 822,
        "pre_local_low": 5067.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-20T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-20T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5099.14,
        "D_prior_index": 35,
        "H4_prior_index": 215,
        "H1_prior_index": 823,
        "pre_local_low": 5069.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-22T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-22T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5152.435,
        "D_prior_index": 36,
        "H4_prior_index": 216,
        "H1_prior_index": 824,
        "pre_local_low": 5083.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5129.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5161.38,
        "D_prior_index": 36,
        "H4_prior_index": 216,
        "H1_prior_index": 825,
        "pre_local_low": 5101.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5135.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5167.935,
        "D_prior_index": 36,
        "H4_prior_index": 216,
        "H1_prior_index": 826,
        "pre_local_low": 5129.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5167.505,
        "D_prior_index": 36,
        "H4_prior_index": 217,
        "H1_prior_index": 827,
        "pre_local_low": 5135.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5171.46,
        "D_prior_index": 36,
        "H4_prior_index": 217,
        "H1_prior_index": 828,
        "pre_local_low": 5151.775,
        "confirmation_time": "2026-02-23T06:40:00Z",
        "impulse_extreme": 5147.39,
        "fib50": 5159.425,
        "fib62": 5162.313,
        "entry_mid": 5160.869,
        "invalid": 5171.46,
        "risk_points": 10.591,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T10:50:00Z",
        "target1": 5150.278,
        "target2": 5139.688,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5156.08,
        "D_prior_index": 36,
        "H4_prior_index": 217,
        "H1_prior_index": 829,
        "pre_local_high": 5176.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5152.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5161.86,
        "D_prior_index": 36,
        "H4_prior_index": 217,
        "H1_prior_index": 830,
        "pre_local_low": 5154.92,
        "confirmation_time": "2026-02-23T05:20:00Z",
        "impulse_extreme": 5153.005,
        "fib50": 5157.432,
        "fib62": 5158.495,
        "entry_mid": 5157.964,
        "invalid": 5161.86,
        "risk_points": 3.896,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T05:25:00Z",
        "target1": 5154.068,
        "target2": 5150.171,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5161.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T06:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5161.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5138.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5154.375,
        "D_prior_index": 36,
        "H4_prior_index": 218,
        "H1_prior_index": 832,
        "pre_local_low": 5139.7,
        "confirmation_time": "2026-02-23T07:20:00Z",
        "impulse_extreme": 5136.465,
        "fib50": 5145.42,
        "fib62": 5147.569,
        "entry_mid": 5146.495,
        "invalid": 5154.375,
        "risk_points": 7.88,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T09:05:00Z",
        "target1": 5138.614,
        "target2": 5130.734,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5139.455,
        "D_prior_index": 36,
        "H4_prior_index": 218,
        "H1_prior_index": 832,
        "pre_local_low": 5125.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5131.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5139.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T08:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5139.785,
        "D_prior_index": 36,
        "H4_prior_index": 218,
        "H1_prior_index": 833,
        "pre_local_low": 5125.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5143.065,
        "D_prior_index": 36,
        "H4_prior_index": 218,
        "H1_prior_index": 834,
        "pre_local_high": 5150.165,
        "confirmation_time": "2026-02-23T10:00:00Z",
        "impulse_extreme": 5153.01,
        "fib50": 5148.038,
        "fib62": 5146.844,
        "entry_mid": 5147.441,
        "invalid": 5143.065,
        "risk_points": 4.376,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T10:05:00Z",
        "target1": 5151.817,
        "target2": 5156.192,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5150.165,
        "D_prior_index": 36,
        "H4_prior_index": 218,
        "H1_prior_index": 834,
        "pre_local_low": 5122.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5153.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5145.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5157.77,
        "D_prior_index": 36,
        "H4_prior_index": 219,
        "H1_prior_index": 835,
        "pre_local_low": 5132.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5154.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5147.1,
        "D_prior_index": 36,
        "H4_prior_index": 219,
        "H1_prior_index": 837,
        "pre_local_high": 5163.655,
        "confirmation_time": "2026-02-23T12:40:00Z",
        "impulse_extreme": 5164.71,
        "fib50": 5155.905,
        "fib62": 5153.792,
        "entry_mid": 5154.848,
        "invalid": 5147.1,
        "risk_points": 7.748,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T13:05:00Z",
        "target1": 5162.597,
        "target2": 5170.345,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5154.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5145.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5165.555,
        "D_prior_index": 36,
        "H4_prior_index": 219,
        "H1_prior_index": 837,
        "pre_local_low": 5145.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5165.565,
        "D_prior_index": 36,
        "H4_prior_index": 219,
        "H1_prior_index": 838,
        "pre_local_low": 5145.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-23T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5141.615,
        "D_prior_index": 36,
        "H4_prior_index": 220,
        "H1_prior_index": 839,
        "pre_local_high": 5165.565,
        "confirmation_time": "2026-02-23T14:30:00Z",
        "impulse_extreme": 5173.87,
        "fib50": 5157.743,
        "fib62": 5153.872,
        "entry_mid": 5155.807,
        "invalid": 5141.615,
        "risk_points": 14.192,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5180.72,
        "D_prior_index": 36,
        "H4_prior_index": 220,
        "H1_prior_index": 840,
        "pre_local_high": 5200.665,
        "confirmation_time": "2026-02-23T15:40:00Z",
        "impulse_extreme": 5202.895,
        "fib50": 5191.808,
        "fib62": 5189.147,
        "entry_mid": 5190.477,
        "invalid": 5180.72,
        "risk_points": 9.757,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T15:55:00Z",
        "target1": 5200.234,
        "target2": 5209.991,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5203.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-23T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.365,
        "D_prior_index": 36,
        "H4_prior_index": 220,
        "H1_prior_index": 840,
        "pre_local_high": 5203.75,
        "confirmation_time": "2026-02-23T16:15:00Z",
        "impulse_extreme": 5216.99,
        "fib50": 5201.677,
        "fib62": 5198.002,
        "entry_mid": 5199.84,
        "invalid": 5186.365,
        "risk_points": 13.475,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-23T17:10:00Z",
        "target1": 5213.315,
        "target2": 5226.79,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5205.17,
        "D_prior_index": 36,
        "H4_prior_index": 220,
        "H1_prior_index": 840,
        "pre_local_low": 5148.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5218.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5213.55,
        "D_prior_index": 36,
        "H4_prior_index": 221,
        "H1_prior_index": 843,
        "pre_local_low": 5191.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5212.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5215.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-23T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5218.44,
        "D_prior_index": 36,
        "H4_prior_index": 221,
        "H1_prior_index": 844,
        "pre_local_low": 5201.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5233.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-23T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-23T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5233.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-24T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5238.18,
        "D_prior_index": 37,
        "H4_prior_index": 222,
        "H1_prior_index": 848,
        "pre_local_low": 5217.52,
        "confirmation_time": "2026-02-24T01:00:00Z",
        "impulse_extreme": 5201.86,
        "fib50": 5220.02,
        "fib62": 5224.378,
        "entry_mid": 5222.199,
        "invalid": 5238.18,
        "risk_points": 15.981,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5224.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.715,
        "D_prior_index": 37,
        "H4_prior_index": 223,
        "H1_prior_index": 850,
        "pre_local_low": 5145.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5165.46,
        "D_prior_index": 37,
        "H4_prior_index": 223,
        "H1_prior_index": 850,
        "pre_local_high": 5232.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.44,
        "D_prior_index": 37,
        "H4_prior_index": 223,
        "H1_prior_index": 852,
        "pre_local_high": 5191.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5164.755,
        "D_prior_index": 37,
        "H4_prior_index": 223,
        "H1_prior_index": 853,
        "pre_local_high": 5177.605,
        "confirmation_time": "2026-02-24T05:50:00Z",
        "impulse_extreme": 5181.895,
        "fib50": 5173.325,
        "fib62": 5171.268,
        "entry_mid": 5172.297,
        "invalid": 5164.755,
        "risk_points": 7.542,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T06:25:00Z",
        "target1": 5179.838,
        "target2": 5187.38,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5155.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.39,
        "D_prior_index": 37,
        "H4_prior_index": 224,
        "H1_prior_index": 854,
        "pre_local_low": 5155.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5164.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5184.15,
        "D_prior_index": 37,
        "H4_prior_index": 224,
        "H1_prior_index": 855,
        "pre_local_low": 5155.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5165.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5181.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5169.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5180.55,
        "D_prior_index": 37,
        "H4_prior_index": 224,
        "H1_prior_index": 857,
        "pre_local_low": 5165.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5166.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.49,
        "D_prior_index": 37,
        "H4_prior_index": 225,
        "H1_prior_index": 858,
        "pre_local_low": 5166.565,
        "confirmation_time": "2026-02-24T12:15:00Z",
        "impulse_extreme": 5147.12,
        "fib50": 5164.305,
        "fib62": 5168.429,
        "entry_mid": 5166.367,
        "invalid": 5181.49,
        "risk_points": 15.123,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T12:30:00Z",
        "target1": 5151.244,
        "target2": 5136.122,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5171.02,
        "D_prior_index": 37,
        "H4_prior_index": 225,
        "H1_prior_index": 859,
        "pre_local_high": 5181.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5178.67,
        "D_prior_index": 37,
        "H4_prior_index": 225,
        "H1_prior_index": 859,
        "pre_local_low": 5163.355,
        "confirmation_time": "2026-02-24T12:15:00Z",
        "impulse_extreme": 5147.12,
        "fib50": 5162.895,
        "fib62": 5166.681,
        "entry_mid": 5164.788,
        "invalid": 5178.67,
        "risk_points": 13.882,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T12:25:00Z",
        "target1": 5150.906,
        "target2": 5137.024,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5139.38,
        "D_prior_index": 37,
        "H4_prior_index": 226,
        "H1_prior_index": 862,
        "pre_local_low": 5093.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5117.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5134.31,
        "D_prior_index": 37,
        "H4_prior_index": 226,
        "H1_prior_index": 863,
        "pre_local_high": 5146.285,
        "confirmation_time": "2026-02-24T15:40:00Z",
        "impulse_extreme": 5150.105,
        "fib50": 5142.208,
        "fib62": 5140.312,
        "entry_mid": 5141.26,
        "invalid": 5134.31,
        "risk_points": 6.95,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T16:05:00Z",
        "target1": 5148.21,
        "target2": 5155.159,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5141.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5135.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5130.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5153.575,
        "D_prior_index": 37,
        "H4_prior_index": 227,
        "H1_prior_index": 866,
        "pre_local_high": 5170.37,
        "confirmation_time": "2026-02-24T20:30:00Z",
        "impulse_extreme": 5170.785,
        "fib50": 5162.18,
        "fib62": 5160.115,
        "entry_mid": 5161.147,
        "invalid": 5153.575,
        "risk_points": 7.572,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T20:50:00Z",
        "target1": 5168.72,
        "target2": 5176.292,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.045,
        "D_prior_index": 37,
        "H4_prior_index": 227,
        "H1_prior_index": 866,
        "pre_local_low": 5148.705,
        "confirmation_time": "2026-02-24T19:20:00Z",
        "impulse_extreme": 5146.39,
        "fib50": 5154.718,
        "fib62": 5156.716,
        "entry_mid": 5155.717,
        "invalid": 5163.045,
        "risk_points": 7.328,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T19:35:00Z",
        "target1": 5148.389,
        "target2": 5141.06,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5146.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-24T20:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5155.95,
        "D_prior_index": 37,
        "H4_prior_index": 227,
        "H1_prior_index": 868,
        "pre_local_low": 5146.39,
        "confirmation_time": "2026-02-24T21:50:00Z",
        "impulse_extreme": 5139.88,
        "fib50": 5147.915,
        "fib62": 5149.843,
        "entry_mid": 5148.879,
        "invalid": 5155.95,
        "risk_points": 7.071,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-24T23:40:00Z",
        "target1": 5141.808,
        "target2": 5134.738,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5156.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-24T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5137.96,
        "D_prior_index": 38,
        "H4_prior_index": 228,
        "H1_prior_index": 870,
        "pre_local_low": 5128.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-24T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-24T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5152.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5156.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5179.475,
        "D_prior_index": 38,
        "H4_prior_index": 229,
        "H1_prior_index": 874,
        "pre_local_high": 5193.835,
        "confirmation_time": "2026-02-25T05:25:00Z",
        "impulse_extreme": 5196.55,
        "fib50": 5188.013,
        "fib62": 5185.963,
        "entry_mid": 5186.988,
        "invalid": 5179.475,
        "risk_points": 7.513,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T06:05:00Z",
        "target1": 5194.501,
        "target2": 5202.014,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5188.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5171.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5185.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5179.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5185.065,
        "D_prior_index": 38,
        "H4_prior_index": 229,
        "H1_prior_index": 875,
        "pre_local_low": 5171.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5210.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5188.535,
        "D_prior_index": 38,
        "H4_prior_index": 230,
        "H1_prior_index": 877,
        "pre_local_high": 5210.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5195.155,
        "D_prior_index": 38,
        "H4_prior_index": 230,
        "H1_prior_index": 878,
        "pre_local_low": 5182.455,
        "confirmation_time": "2026-02-25T09:00:00Z",
        "impulse_extreme": 5176.635,
        "fib50": 5185.895,
        "fib62": 5188.117,
        "entry_mid": 5187.006,
        "invalid": 5195.155,
        "risk_points": 8.149,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T09:05:00Z",
        "target1": 5178.857,
        "target2": 5170.709,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5190.5,
        "D_prior_index": 38,
        "H4_prior_index": 230,
        "H1_prior_index": 878,
        "pre_local_low": 5182.245,
        "confirmation_time": "2026-02-25T09:00:00Z",
        "impulse_extreme": 5176.635,
        "fib50": 5183.568,
        "fib62": 5185.231,
        "entry_mid": 5184.399,
        "invalid": 5190.5,
        "risk_points": 6.101,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T09:05:00Z",
        "target1": 5178.299,
        "target2": 5172.198,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5197.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5188.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5194.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5195.285,
        "D_prior_index": 38,
        "H4_prior_index": 231,
        "H1_prior_index": 881,
        "pre_local_low": 5176.635,
        "confirmation_time": "2026-02-25T10:20:00Z",
        "impulse_extreme": 5174.075,
        "fib50": 5184.68,
        "fib62": 5187.225,
        "entry_mid": 5185.953,
        "invalid": 5195.285,
        "risk_points": 9.332,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T12:15:00Z",
        "target1": 5176.62,
        "target2": 5167.288,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5169.84,
        "D_prior_index": 38,
        "H4_prior_index": 231,
        "H1_prior_index": 881,
        "pre_local_high": 5195.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5155.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5182.99,
        "D_prior_index": 38,
        "H4_prior_index": 231,
        "H1_prior_index": 883,
        "pre_local_low": 5155.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5177.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5191.415,
        "D_prior_index": 38,
        "H4_prior_index": 231,
        "H1_prior_index": 884,
        "pre_local_low": 5166.685,
        "confirmation_time": "2026-02-25T14:35:00Z",
        "impulse_extreme": 5158.645,
        "fib50": 5175.03,
        "fib62": 5178.962,
        "entry_mid": 5176.996,
        "invalid": 5191.415,
        "risk_points": 14.419,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T14:40:00Z",
        "target1": 5162.577,
        "target2": 5148.159,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.91,
        "D_prior_index": 38,
        "H4_prior_index": 231,
        "H1_prior_index": 884,
        "pre_local_high": 5191.415,
        "confirmation_time": "2026-02-25T15:00:00Z",
        "impulse_extreme": 5201.515,
        "fib50": 5191.712,
        "fib62": 5189.36,
        "entry_mid": 5190.536,
        "invalid": 5181.91,
        "risk_points": 8.626,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T15:10:00Z",
        "target1": 5199.162,
        "target2": 5207.789,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5183.675,
        "D_prior_index": 38,
        "H4_prior_index": 232,
        "H1_prior_index": 885,
        "pre_local_high": 5191.415,
        "confirmation_time": "2026-02-25T15:00:00Z",
        "impulse_extreme": 5201.515,
        "fib50": 5192.595,
        "fib62": 5190.454,
        "entry_mid": 5191.525,
        "invalid": 5183.675,
        "risk_points": 7.85,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T15:10:00Z",
        "target1": 5199.374,
        "target2": 5207.224,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5158.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T15:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5172.2,
        "D_prior_index": 38,
        "H4_prior_index": 232,
        "H1_prior_index": 886,
        "pre_local_high": 5202.795,
        "confirmation_time": "2026-02-25T16:20:00Z",
        "impulse_extreme": 5205.85,
        "fib50": 5189.025,
        "fib62": 5184.987,
        "entry_mid": 5187.006,
        "invalid": 5172.2,
        "risk_points": 14.806,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T20:15:00Z",
        "target1": 5201.812,
        "target2": 5216.618,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5198.86,
        "D_prior_index": 38,
        "H4_prior_index": 232,
        "H1_prior_index": 887,
        "pre_local_low": 5158.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5207.645,
        "D_prior_index": 38,
        "H4_prior_index": 233,
        "H1_prior_index": 889,
        "pre_local_low": 5203.7,
        "confirmation_time": "2026-02-25T18:45:00Z",
        "impulse_extreme": 5200.55,
        "fib50": 5204.097,
        "fib62": 5204.949,
        "entry_mid": 5204.523,
        "invalid": 5207.645,
        "risk_points": 3.122,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-25T18:55:00Z",
        "target1": 5201.401,
        "target2": 5198.28,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T19:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5208.445,
        "D_prior_index": 38,
        "H4_prior_index": 233,
        "H1_prior_index": 890,
        "pre_local_low": 5191.695,
        "confirmation_time": "2026-02-25T20:15:00Z",
        "impulse_extreme": 5183.38,
        "fib50": 5195.913,
        "fib62": 5198.92,
        "entry_mid": 5197.416,
        "invalid": 5208.445,
        "risk_points": 11.029,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T01:00:00Z",
        "target1": 5186.388,
        "target2": 5175.359,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-25T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-25T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.715,
        "D_prior_index": 39,
        "H4_prior_index": 234,
        "H1_prior_index": 893,
        "pre_local_high": 5188.93,
        "confirmation_time": "2026-02-26T00:50:00Z",
        "impulse_extreme": 5191.215,
        "fib50": 5177.465,
        "fib62": 5174.165,
        "entry_mid": 5175.815,
        "invalid": 5163.715,
        "risk_points": 12.1,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T02:35:00Z",
        "target1": 5187.915,
        "target2": 5200.015,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-25T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-25T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5179.305,
        "D_prior_index": 39,
        "H4_prior_index": 234,
        "H1_prior_index": 893,
        "pre_local_low": 5156.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5155.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5192.205,
        "D_prior_index": 39,
        "H4_prior_index": 234,
        "H1_prior_index": 894,
        "pre_local_low": 5155.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5198.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5194.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5195.82,
        "D_prior_index": 39,
        "H4_prior_index": 235,
        "H1_prior_index": 896,
        "pre_local_low": 5169.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5186.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5184.21,
        "D_prior_index": 39,
        "H4_prior_index": 235,
        "H1_prior_index": 897,
        "pre_local_high": 5193.835,
        "confirmation_time": "2026-02-26T04:00:00Z",
        "impulse_extreme": 5195.58,
        "fib50": 5189.895,
        "fib62": 5188.531,
        "entry_mid": 5189.213,
        "invalid": 5184.21,
        "risk_points": 5.003,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T07:00:00Z",
        "target1": 5194.216,
        "target2": 5199.218,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5189.935,
        "D_prior_index": 39,
        "H4_prior_index": 235,
        "H1_prior_index": 899,
        "pre_local_high": 5199.49,
        "confirmation_time": "2026-02-26T05:15:00Z",
        "impulse_extreme": 5202.455,
        "fib50": 5196.195,
        "fib62": 5194.693,
        "entry_mid": 5195.444,
        "invalid": 5189.935,
        "risk_points": 5.509,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T05:35:00Z",
        "target1": 5200.953,
        "target2": 5206.461,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5195.895,
        "D_prior_index": 39,
        "H4_prior_index": 235,
        "H1_prior_index": 899,
        "pre_local_high": 5205.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5193.19,
        "D_prior_index": 39,
        "H4_prior_index": 236,
        "H1_prior_index": 900,
        "pre_local_high": 5205.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5198.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5179.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T08:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5179.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5167.7,
        "D_prior_index": 39,
        "H4_prior_index": 236,
        "H1_prior_index": 902,
        "pre_local_high": 5191.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5183.955,
        "D_prior_index": 39,
        "H4_prior_index": 236,
        "H1_prior_index": 903,
        "pre_local_low": 5167.7,
        "confirmation_time": "2026-02-26T11:50:00Z",
        "impulse_extreme": 5161.05,
        "fib50": 5172.503,
        "fib62": 5175.251,
        "entry_mid": 5173.877,
        "invalid": 5183.955,
        "risk_points": 10.078,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T12:15:00Z",
        "target1": 5163.799,
        "target2": 5153.72,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5157.87,
        "D_prior_index": 39,
        "H4_prior_index": 237,
        "H1_prior_index": 906,
        "pre_local_high": 5185.11,
        "confirmation_time": "2026-02-26T12:40:00Z",
        "impulse_extreme": 5187.87,
        "fib50": 5172.87,
        "fib62": 5169.27,
        "entry_mid": 5171.07,
        "invalid": 5157.87,
        "risk_points": 13.2,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T13:05:00Z",
        "target1": 5184.27,
        "target2": 5197.47,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5188.095,
        "D_prior_index": 39,
        "H4_prior_index": 237,
        "H1_prior_index": 906,
        "pre_local_low": 5157.87,
        "confirmation_time": "2026-02-26T15:20:00Z",
        "impulse_extreme": 5151.85,
        "fib50": 5169.972,
        "fib62": 5174.322,
        "entry_mid": 5172.147,
        "invalid": 5188.095,
        "risk_points": 15.948,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T15:40:00Z",
        "target1": 5156.199,
        "target2": 5140.252,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5160.24,
        "D_prior_index": 39,
        "H4_prior_index": 238,
        "H1_prior_index": 908,
        "pre_local_high": 5188.095,
        "confirmation_time": "2026-02-26T15:50:00Z",
        "impulse_extreme": 5192.955,
        "fib50": 5176.597,
        "fib62": 5172.672,
        "entry_mid": 5174.635,
        "invalid": 5160.24,
        "risk_points": 14.395,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T16:10:00Z",
        "target1": 5189.029,
        "target2": 5203.424,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5140.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T14:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5176.33,
        "D_prior_index": 39,
        "H4_prior_index": 238,
        "H1_prior_index": 908,
        "pre_local_low": 5140.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5172.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5186.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.38,
        "D_prior_index": 39,
        "H4_prior_index": 238,
        "H1_prior_index": 910,
        "pre_local_high": 5192.955,
        "confirmation_time": "2026-02-26T19:45:00Z",
        "impulse_extreme": 5194.08,
        "fib50": 5184.73,
        "fib62": 5182.486,
        "entry_mid": 5183.608,
        "invalid": 5175.38,
        "risk_points": 8.228,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T21:30:00Z",
        "target1": 5191.836,
        "target2": 5200.064,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5172.01,
        "D_prior_index": 39,
        "H4_prior_index": 238,
        "H1_prior_index": 911,
        "pre_local_high": 5192.955,
        "confirmation_time": "2026-02-26T19:45:00Z",
        "impulse_extreme": 5194.08,
        "fib50": 5183.045,
        "fib62": 5180.397,
        "entry_mid": 5181.721,
        "invalid": 5172.01,
        "risk_points": 9.711,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T21:55:00Z",
        "target1": 5191.432,
        "target2": 5201.142,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5160.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5186.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5183.505,
        "D_prior_index": 39,
        "H4_prior_index": 239,
        "H1_prior_index": 913,
        "pre_local_high": 5189.265,
        "confirmation_time": "2026-02-26T19:45:00Z",
        "impulse_extreme": 5194.08,
        "fib50": 5188.792,
        "fib62": 5187.524,
        "entry_mid": 5188.158,
        "invalid": 5183.505,
        "risk_points": 4.653,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T19:55:00Z",
        "target1": 5192.811,
        "target2": 5197.464,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5194.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5198.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-26T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5190.87,
        "D_prior_index": 39,
        "H4_prior_index": 239,
        "H1_prior_index": 914,
        "pre_local_high": 5198.06,
        "confirmation_time": "2026-02-26T20:40:00Z",
        "impulse_extreme": 5199.31,
        "fib50": 5195.09,
        "fib62": 5194.077,
        "entry_mid": 5194.584,
        "invalid": 5190.87,
        "risk_points": 3.714,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-26T20:50:00Z",
        "target1": 5198.297,
        "target2": 5202.011,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5201.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-26T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5184.425,
        "D_prior_index": 39,
        "H4_prior_index": 239,
        "H1_prior_index": 915,
        "pre_local_high": 5201.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5179.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-26T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-26T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5166.995,
        "D_prior_index": 40,
        "H4_prior_index": 240,
        "H1_prior_index": 918,
        "pre_local_high": 5195.03,
        "confirmation_time": "2026-02-27T02:05:00Z",
        "impulse_extreme": 5199.845,
        "fib50": 5183.42,
        "fib62": 5179.478,
        "entry_mid": 5181.449,
        "invalid": 5166.995,
        "risk_points": 14.454,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T02:30:00Z",
        "target1": 5195.903,
        "target2": 5210.357,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5180.355,
        "D_prior_index": 40,
        "H4_prior_index": 240,
        "H1_prior_index": 918,
        "pre_local_low": 5166.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5173.345,
        "D_prior_index": 40,
        "H4_prior_index": 240,
        "H1_prior_index": 918,
        "pre_local_high": 5195.03,
        "confirmation_time": "2026-02-27T02:05:00Z",
        "impulse_extreme": 5199.845,
        "fib50": 5186.595,
        "fib62": 5183.415,
        "entry_mid": 5185.005,
        "invalid": 5173.345,
        "risk_points": 11.66,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T02:20:00Z",
        "target1": 5196.665,
        "target2": 5208.325,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5199.845,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 919,
        "pre_local_low": 5166.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5173.59,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 919,
        "pre_local_high": 5199.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5185.13,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 920,
        "pre_local_low": 5173.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5189.225,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 920,
        "pre_local_low": 5173.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5183.66,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 921,
        "pre_local_high": 5192.07,
        "confirmation_time": "2026-02-27T05:25:00Z",
        "impulse_extreme": 5195.035,
        "fib50": 5189.347,
        "fib62": 5187.983,
        "entry_mid": 5188.665,
        "invalid": 5183.66,
        "risk_points": 5.005,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T06:50:00Z",
        "target1": 5193.67,
        "target2": 5198.675,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.78,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 921,
        "pre_local_high": 5190.9,
        "confirmation_time": "2026-02-27T05:25:00Z",
        "impulse_extreme": 5195.035,
        "fib50": 5188.407,
        "fib62": 5186.817,
        "entry_mid": 5187.612,
        "invalid": 5181.78,
        "risk_points": 5.832,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T06:50:00Z",
        "target1": 5193.444,
        "target2": 5199.277,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5188.785,
        "D_prior_index": 40,
        "H4_prior_index": 241,
        "H1_prior_index": 921,
        "pre_local_low": 5173.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5197.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5192.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5199.47,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 923,
        "pre_local_low": 5181.015,
        "confirmation_time": "2026-02-27T07:15:00Z",
        "impulse_extreme": 5177.585,
        "fib50": 5188.528,
        "fib62": 5191.154,
        "entry_mid": 5189.841,
        "invalid": 5199.47,
        "risk_points": 9.629,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T12:05:00Z",
        "target1": 5180.211,
        "target2": 5170.582,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.795,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 924,
        "pre_local_high": 5200.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5174.38,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 925,
        "pre_local_high": 5196.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5176.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.215,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 926,
        "pre_local_high": 5185.785,
        "confirmation_time": "2026-02-27T12:00:00Z",
        "impulse_extreme": 5187.625,
        "fib50": 5181.42,
        "fib62": 5179.931,
        "entry_mid": 5180.675,
        "invalid": 5175.215,
        "risk_points": 5.46,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5182.285,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 926,
        "pre_local_low": 5174.38,
        "confirmation_time": "2026-02-27T09:50:00Z",
        "impulse_extreme": 5172.515,
        "fib50": 5177.4,
        "fib62": 5178.572,
        "entry_mid": 5177.986,
        "invalid": 5182.285,
        "risk_points": 4.299,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T10:15:00Z",
        "target1": 5173.687,
        "target2": 5169.389,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-02-27T09:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5182.815,
        "D_prior_index": 40,
        "H4_prior_index": 242,
        "H1_prior_index": 926,
        "pre_local_low": 5172.655,
        "confirmation_time": "2026-02-27T10:00:00Z",
        "impulse_extreme": 5171.51,
        "fib50": 5177.163,
        "fib62": 5178.519,
        "entry_mid": 5177.841,
        "invalid": 5182.815,
        "risk_points": 4.974,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-02-27T10:15:00Z",
        "target1": 5172.867,
        "target2": 5167.892,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5168.685,
        "D_prior_index": 40,
        "H4_prior_index": 243,
        "H1_prior_index": 927,
        "pre_local_high": 5182.815,
        "confirmation_time": "2026-02-27T11:55:00Z",
        "impulse_extreme": 5185.715,
        "fib50": 5177.2,
        "fib62": 5175.156,
        "entry_mid": 5176.178,
        "invalid": 5168.685,
        "risk_points": 7.493,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5180.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5169.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T11:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5172.66,
        "D_prior_index": 40,
        "H4_prior_index": 243,
        "H1_prior_index": 928,
        "pre_local_high": 5182.815,
        "confirmation_time": "2026-02-27T11:55:00Z",
        "impulse_extreme": 5185.715,
        "fib50": 5179.188,
        "fib62": 5177.621,
        "entry_mid": 5178.404,
        "invalid": 5172.66,
        "risk_points": 5.744,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5180.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5183.12,
        "D_prior_index": 40,
        "H4_prior_index": 243,
        "H1_prior_index": 929,
        "pre_local_high": 5190.69,
        "confirmation_time": "2026-02-27T13:00:00Z",
        "impulse_extreme": 5195.715,
        "fib50": 5189.417,
        "fib62": 5187.906,
        "entry_mid": 5188.662,
        "invalid": 5183.12,
        "risk_points": 5.542,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5207.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5213.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5214.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5240.33,
        "D_prior_index": 40,
        "H4_prior_index": 244,
        "H1_prior_index": 932,
        "pre_local_low": 5207.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T16:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5221.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T16:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5257.75,
        "D_prior_index": 40,
        "H4_prior_index": 244,
        "H1_prior_index": 933,
        "pre_local_low": 5213.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5226.305,
        "D_prior_index": 40,
        "H4_prior_index": 244,
        "H1_prior_index": 934,
        "pre_local_high": 5257.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5223.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5220.76,
        "D_prior_index": 40,
        "H4_prior_index": 244,
        "H1_prior_index": 934,
        "pre_local_high": 5257.75,
        "confirmation_time": "2026-02-27T20:20:00Z",
        "impulse_extreme": 5262.275,
        "fib50": 5241.517,
        "fib62": 5236.536,
        "entry_mid": 5239.027,
        "invalid": 5220.76,
        "risk_points": 18.267,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-02-27T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5237.01,
        "D_prior_index": 40,
        "H4_prior_index": 244,
        "H1_prior_index": 934,
        "pre_local_low": 5220.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5238.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5251.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5252.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5243.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5251.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5263.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-02-27T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5257.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-02-27T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-02-27T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5257.32,
        "D_prior_index": 40,
        "H4_prior_index": 245,
        "H1_prior_index": 938,
        "pre_local_high": 5265.6,
        "confirmation_time": "2026-02-27T21:35:00Z",
        "impulse_extreme": 5270.995,
        "fib50": 5264.157,
        "fib62": 5262.516,
        "entry_mid": 5263.337,
        "invalid": 5257.32,
        "risk_points": 6.017,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5364.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5349.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5317.325,
        "D_prior_index": 41,
        "H4_prior_index": 247,
        "H1_prior_index": 942,
        "pre_local_high": 5373.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5336.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5352.04,
        "D_prior_index": 41,
        "H4_prior_index": 247,
        "H1_prior_index": 942,
        "pre_local_low": 5303.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5359.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5367.325,
        "D_prior_index": 41,
        "H4_prior_index": 247,
        "H1_prior_index": 944,
        "pre_local_low": 5326.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-02T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5340.82,
        "D_prior_index": 41,
        "H4_prior_index": 247,
        "H1_prior_index": 945,
        "pre_local_high": 5367.325,
        "confirmation_time": "2026-03-02T06:05:00Z",
        "impulse_extreme": 5380.16,
        "fib50": 5360.49,
        "fib62": 5355.769,
        "entry_mid": 5358.13,
        "invalid": 5340.82,
        "risk_points": 17.31,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5383.225,
        "D_prior_index": 41,
        "H4_prior_index": 248,
        "H1_prior_index": 946,
        "pre_local_low": 5340.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5414.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5402.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5416.945,
        "D_prior_index": 41,
        "H4_prior_index": 248,
        "H1_prior_index": 948,
        "pre_local_low": 5382.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5389.455,
        "D_prior_index": 41,
        "H4_prior_index": 248,
        "H1_prior_index": 949,
        "pre_local_high": 5419.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5386.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5403.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5379.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T10:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5381.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-02T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5401.045,
        "D_prior_index": 41,
        "H4_prior_index": 249,
        "H1_prior_index": 950,
        "pre_local_low": 5379.055,
        "confirmation_time": "2026-03-02T11:50:00Z",
        "impulse_extreme": 5378.37,
        "fib50": 5389.708,
        "fib62": 5392.428,
        "entry_mid": 5391.068,
        "invalid": 5401.045,
        "risk_points": 9.977,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-02T12:05:00Z",
        "target1": 5381.091,
        "target2": 5371.114,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5397.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5400.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5385.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5410.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-02T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5417.045,
        "D_prior_index": 41,
        "H4_prior_index": 249,
        "H1_prior_index": 953,
        "pre_local_low": 5378.325,
        "confirmation_time": "2026-03-02T14:00:00Z",
        "impulse_extreme": 5376.79,
        "fib50": 5396.917,
        "fib62": 5401.748,
        "entry_mid": 5399.333,
        "invalid": 5417.045,
        "risk_points": 17.712,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5389.35,
        "D_prior_index": 41,
        "H4_prior_index": 249,
        "H1_prior_index": 953,
        "pre_local_high": 5417.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5306.51,
        "D_prior_index": 41,
        "H4_prior_index": 250,
        "H1_prior_index": 954,
        "pre_local_high": 5417.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5311.265,
        "D_prior_index": 41,
        "H4_prior_index": 250,
        "H1_prior_index": 955,
        "pre_local_high": 5417.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-02T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5287.11,
        "D_prior_index": 41,
        "H4_prior_index": 250,
        "H1_prior_index": 957,
        "pre_local_high": 5349.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5310.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5312.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5320.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-02T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5298.1,
        "D_prior_index": 41,
        "H4_prior_index": 250,
        "H1_prior_index": 957,
        "pre_local_high": 5320.92,
        "confirmation_time": "2026-03-02T19:00:00Z",
        "impulse_extreme": 5326.45,
        "fib50": 5312.275,
        "fib62": 5308.873,
        "entry_mid": 5310.574,
        "invalid": 5298.1,
        "risk_points": 12.474,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-02T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5291.02,
        "D_prior_index": 41,
        "H4_prior_index": 251,
        "H1_prior_index": 958,
        "pre_local_high": 5320.92,
        "confirmation_time": "2026-03-02T19:00:00Z",
        "impulse_extreme": 5326.45,
        "fib50": 5308.735,
        "fib62": 5304.483,
        "entry_mid": 5306.609,
        "invalid": 5291.02,
        "risk_points": 15.589,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5334.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-02T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5323.0,
        "D_prior_index": 41,
        "H4_prior_index": 251,
        "H1_prior_index": 959,
        "pre_local_high": 5334.185,
        "confirmation_time": "2026-03-02T20:05:00Z",
        "impulse_extreme": 5343.275,
        "fib50": 5333.137,
        "fib62": 5330.704,
        "entry_mid": 5331.921,
        "invalid": 5323.0,
        "risk_points": 8.921,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-02T20:15:00Z",
        "target1": 5340.842,
        "target2": 5349.763,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5331.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T21-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T21:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5331.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T21-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-02T21:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5340.565,
        "D_prior_index": 41,
        "H4_prior_index": 251,
        "H1_prior_index": 961,
        "pre_local_low": 5323.0,
        "confirmation_time": "2026-03-02T21:55:00Z",
        "impulse_extreme": 5321.705,
        "fib50": 5331.135,
        "fib62": 5333.398,
        "entry_mid": 5332.267,
        "invalid": 5340.565,
        "risk_points": 8.298,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5326.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-02T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5329.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-02T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-02T23:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5330.145,
        "D_prior_index": 42,
        "H4_prior_index": 252,
        "H1_prior_index": 962,
        "pre_local_high": 5347.215,
        "confirmation_time": "2026-03-03T00:10:00Z",
        "impulse_extreme": 5349.705,
        "fib50": 5339.925,
        "fib62": 5337.578,
        "entry_mid": 5338.751,
        "invalid": 5330.145,
        "risk_points": 8.606,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-03T01:55:00Z",
        "target1": 5347.358,
        "target2": 5355.964,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5362.29,
        "D_prior_index": 42,
        "H4_prior_index": 252,
        "H1_prior_index": 963,
        "pre_local_low": 5321.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-03T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5346.05,
        "D_prior_index": 42,
        "H4_prior_index": 252,
        "H1_prior_index": 963,
        "pre_local_high": 5362.29,
        "confirmation_time": "2026-03-03T01:00:00Z",
        "impulse_extreme": 5363.45,
        "fib50": 5354.75,
        "fib62": 5352.662,
        "entry_mid": 5353.706,
        "invalid": 5346.05,
        "risk_points": 7.656,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5332.94,
        "D_prior_index": 42,
        "H4_prior_index": 253,
        "H1_prior_index": 965,
        "pre_local_high": 5379.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5371.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5363.745,
        "D_prior_index": 42,
        "H4_prior_index": 253,
        "H1_prior_index": 966,
        "pre_local_high": 5377.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5373.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5358.94,
        "D_prior_index": 42,
        "H4_prior_index": 253,
        "H1_prior_index": 966,
        "pre_local_high": 5373.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-03T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5375.865,
        "D_prior_index": 42,
        "H4_prior_index": 253,
        "H1_prior_index": 967,
        "pre_local_low": 5358.94,
        "confirmation_time": "2026-03-03T05:20:00Z",
        "impulse_extreme": 5356.06,
        "fib50": 5365.962,
        "fib62": 5368.339,
        "entry_mid": 5367.151,
        "invalid": 5375.865,
        "risk_points": 8.714,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5354.25,
        "D_prior_index": 42,
        "H4_prior_index": 253,
        "H1_prior_index": 968,
        "pre_local_high": 5375.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5352.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5291.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5318.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5320.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-03T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5331.32,
        "D_prior_index": 42,
        "H4_prior_index": 254,
        "H1_prior_index": 970,
        "pre_local_low": 5279.005,
        "confirmation_time": "2026-03-03T09:25:00Z",
        "impulse_extreme": 5225.57,
        "fib50": 5278.445,
        "fib62": 5291.135,
        "entry_mid": 5284.79,
        "invalid": 5331.32,
        "risk_points": 46.53,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-03T09:50:00Z",
        "target1": 5238.26,
        "target2": 5191.73,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5336.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5284.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5288.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5265.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5237.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-03T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5264.17,
        "D_prior_index": 42,
        "H4_prior_index": 255,
        "H1_prior_index": 974,
        "pre_local_low": 5225.57,
        "confirmation_time": "2026-03-03T11:05:00Z",
        "impulse_extreme": 5160.515,
        "fib50": 5212.343,
        "fib62": 5224.781,
        "entry_mid": 5218.562,
        "invalid": 5264.17,
        "risk_points": 45.608,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-03T12:30:00Z",
        "target1": 5172.954,
        "target2": 5127.345,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.135,
        "D_prior_index": 42,
        "H4_prior_index": 255,
        "H1_prior_index": 974,
        "pre_local_high": 5288.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-03T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5212.465,
        "D_prior_index": 42,
        "H4_prior_index": 255,
        "H1_prior_index": 975,
        "pre_local_low": 5073.135,
        "confirmation_time": "2026-03-03T14:40:00Z",
        "impulse_extreme": 5062.135,
        "fib50": 5137.3,
        "fib62": 5155.34,
        "entry_mid": 5146.32,
        "invalid": 5212.465,
        "risk_points": 66.145,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-03T18:50:00Z",
        "target1": 5080.175,
        "target2": 5014.029,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-03T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.36,
        "D_prior_index": 42,
        "H4_prior_index": 255,
        "H1_prior_index": 976,
        "pre_local_low": 5137.31,
        "confirmation_time": "2026-03-03T14:20:00Z",
        "impulse_extreme": 5124.81,
        "fib50": 5155.585,
        "fib62": 5162.971,
        "entry_mid": 5159.278,
        "invalid": 5186.36,
        "risk_points": 27.082,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5127.6,
        "D_prior_index": 42,
        "H4_prior_index": 255,
        "H1_prior_index": 976,
        "pre_local_high": 5227.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4996.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5126.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5134.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-03T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5098.1,
        "D_prior_index": 42,
        "H4_prior_index": 256,
        "H1_prior_index": 979,
        "pre_local_high": 5134.82,
        "confirmation_time": "2026-03-03T18:50:00Z",
        "impulse_extreme": 5138.44,
        "fib50": 5118.27,
        "fib62": 5113.429,
        "entry_mid": 5115.85,
        "invalid": 5098.1,
        "risk_points": 17.75,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-03T19:10:00Z",
        "target1": 5133.599,
        "target2": 5151.349,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5081.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5109.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5138.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5099.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5128.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5130.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5084.075,
        "D_prior_index": 42,
        "H4_prior_index": 257,
        "H1_prior_index": 984,
        "pre_local_high": 5130.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T21-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T21:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-03T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5128.96,
        "D_prior_index": 43,
        "H4_prior_index": 258,
        "H1_prior_index": 985,
        "pre_local_low": 5083.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-03T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-03T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5130.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5129.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5164.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5142.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5163.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T02:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.125,
        "D_prior_index": 43,
        "H4_prior_index": 259,
        "H1_prior_index": 988,
        "pre_local_low": 5142.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5141.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.01,
        "D_prior_index": 43,
        "H4_prior_index": 259,
        "H1_prior_index": 990,
        "pre_local_low": 5141.14,
        "confirmation_time": "2026-03-04T06:20:00Z",
        "impulse_extreme": 5128.4,
        "fib50": 5154.705,
        "fib62": 5161.018,
        "entry_mid": 5157.862,
        "invalid": 5181.01,
        "risk_points": 23.148,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T06:35:00Z",
        "target1": 5134.713,
        "target2": 5111.565,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5152.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5166.445,
        "D_prior_index": 43,
        "H4_prior_index": 259,
        "H1_prior_index": 991,
        "pre_local_low": 5151.77,
        "confirmation_time": "2026-03-04T06:00:00Z",
        "impulse_extreme": 5141.57,
        "fib50": 5154.007,
        "fib62": 5156.992,
        "entry_mid": 5155.5,
        "invalid": 5166.445,
        "risk_points": 10.945,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T06:35:00Z",
        "target1": 5144.555,
        "target2": 5133.61,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5167.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5154.075,
        "D_prior_index": 43,
        "H4_prior_index": 259,
        "H1_prior_index": 991,
        "pre_local_high": 5181.01,
        "confirmation_time": "2026-03-04T08:45:00Z",
        "impulse_extreme": 5181.77,
        "fib50": 5167.923,
        "fib62": 5164.599,
        "entry_mid": 5166.261,
        "invalid": 5154.075,
        "risk_points": 12.186,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T08:55:00Z",
        "target1": 5178.447,
        "target2": 5190.632,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5168.47,
        "D_prior_index": 43,
        "H4_prior_index": 259,
        "H1_prior_index": 991,
        "pre_local_low": 5151.77,
        "confirmation_time": "2026-03-04T06:00:00Z",
        "impulse_extreme": 5141.57,
        "fib50": 5155.02,
        "fib62": 5158.248,
        "entry_mid": 5156.634,
        "invalid": 5168.47,
        "risk_points": 11.836,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T06:35:00Z",
        "target1": 5144.798,
        "target2": 5132.962,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T06:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5156.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5176.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5202.425,
        "D_prior_index": 43,
        "H4_prior_index": 261,
        "H1_prior_index": 996,
        "pre_local_low": 5159.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5194.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5197.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5200.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5187.645,
        "D_prior_index": 43,
        "H4_prior_index": 261,
        "H1_prior_index": 997,
        "pre_local_high": 5202.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5160.15,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1000,
        "pre_local_high": 5196.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5185.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5167.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5133.435,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1001,
        "pre_local_high": 5185.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5162.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5138.28,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1002,
        "pre_local_high": 5184.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5159.21,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1002,
        "pre_local_low": 5131.34,
        "confirmation_time": "2026-03-04T17:20:00Z",
        "impulse_extreme": 5120.285,
        "fib50": 5139.747,
        "fib62": 5144.418,
        "entry_mid": 5142.083,
        "invalid": 5159.21,
        "risk_points": 17.127,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T17:25:00Z",
        "target1": 5124.956,
        "target2": 5107.829,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5142.835,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1002,
        "pre_local_high": 5167.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5152.99,
        "D_prior_index": 43,
        "H4_prior_index": 262,
        "H1_prior_index": 1003,
        "pre_local_low": 5133.435,
        "confirmation_time": "2026-03-04T17:20:00Z",
        "impulse_extreme": 5120.285,
        "fib50": 5136.637,
        "fib62": 5140.562,
        "entry_mid": 5138.6,
        "invalid": 5152.99,
        "risk_points": 14.39,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T17:25:00Z",
        "target1": 5124.21,
        "target2": 5109.819,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5110.9,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1004,
        "pre_local_high": 5159.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5108.64,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1004,
        "pre_local_high": 5152.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5129.98,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1004,
        "pre_local_low": 5110.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5136.765,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1005,
        "pre_local_low": 5108.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5123.385,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1005,
        "pre_local_high": 5147.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-04T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5127.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-04T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5123.785,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1006,
        "pre_local_high": 5139.695,
        "confirmation_time": "2026-03-04T20:35:00Z",
        "impulse_extreme": 5142.88,
        "fib50": 5133.333,
        "fib62": 5131.041,
        "entry_mid": 5132.187,
        "invalid": 5123.785,
        "risk_points": 8.402,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-04T20:55:00Z",
        "target1": 5140.589,
        "target2": 5148.99,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5141.97,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1007,
        "pre_local_low": 5123.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5142.465,
        "D_prior_index": 43,
        "H4_prior_index": 263,
        "H1_prior_index": 1007,
        "pre_local_low": 5123.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-04T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-04T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5156.87,
        "D_prior_index": 44,
        "H4_prior_index": 264,
        "H1_prior_index": 1008,
        "pre_local_low": 5129.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5168.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5166.38,
        "D_prior_index": 44,
        "H4_prior_index": 264,
        "H1_prior_index": 1009,
        "pre_local_high": 5180.1,
        "confirmation_time": "2026-03-05T01:05:00Z",
        "impulse_extreme": 5181.65,
        "fib50": 5174.015,
        "fib62": 5172.183,
        "entry_mid": 5173.099,
        "invalid": 5166.38,
        "risk_points": 6.719,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T01:20:00Z",
        "target1": 5179.818,
        "target2": 5186.536,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5177.465,
        "D_prior_index": 44,
        "H4_prior_index": 264,
        "H1_prior_index": 1009,
        "pre_local_low": 5144.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5186.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5167.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5180.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T02:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5181.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5174.375,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1011,
        "pre_local_high": 5188.32,
        "confirmation_time": "2026-03-05T02:55:00Z",
        "impulse_extreme": 5192.62,
        "fib50": 5183.497,
        "fib62": 5181.308,
        "entry_mid": 5182.403,
        "invalid": 5174.375,
        "risk_points": 8.028,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T03:30:00Z",
        "target1": 5190.431,
        "target2": 5198.458,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5195.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.315,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1012,
        "pre_local_high": 5195.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T03:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5191.18,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1012,
        "pre_local_low": 5172.785,
        "confirmation_time": "2026-03-05T04:45:00Z",
        "impulse_extreme": 5168.99,
        "fib50": 5180.085,
        "fib62": 5182.748,
        "entry_mid": 5181.416,
        "invalid": 5191.18,
        "risk_points": 9.764,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T09:05:00Z",
        "target1": 5171.653,
        "target2": 5161.889,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5176.88,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1013,
        "pre_local_high": 5195.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5174.8,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1013,
        "pre_local_high": 5195.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.81,
        "D_prior_index": 44,
        "H4_prior_index": 265,
        "H1_prior_index": 1013,
        "pre_local_low": 5174.375,
        "confirmation_time": "2026-03-05T04:40:00Z",
        "impulse_extreme": 5173.965,
        "fib50": 5180.388,
        "fib62": 5181.929,
        "entry_mid": 5181.158,
        "invalid": 5186.81,
        "risk_points": 5.652,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T09:10:00Z",
        "target1": 5175.506,
        "target2": 5169.855,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5176.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5172.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5159.895,
        "D_prior_index": 44,
        "H4_prior_index": 266,
        "H1_prior_index": 1016,
        "pre_local_high": 5172.94,
        "confirmation_time": "2026-03-05T09:05:00Z",
        "impulse_extreme": 5180.355,
        "fib50": 5170.125,
        "fib62": 5167.67,
        "entry_mid": 5168.897,
        "invalid": 5159.895,
        "risk_points": 9.002,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T09:25:00Z",
        "target1": 5177.9,
        "target2": 5186.902,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5159.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5158.8,
        "D_prior_index": 44,
        "H4_prior_index": 266,
        "H1_prior_index": 1016,
        "pre_local_high": 5172.94,
        "confirmation_time": "2026-03-05T09:05:00Z",
        "impulse_extreme": 5180.355,
        "fib50": 5169.577,
        "fib62": 5166.991,
        "entry_mid": 5168.284,
        "invalid": 5158.8,
        "risk_points": 9.484,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T09:25:00Z",
        "target1": 5177.768,
        "target2": 5187.253,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5137.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5147.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-05T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5158.92,
        "D_prior_index": 44,
        "H4_prior_index": 267,
        "H1_prior_index": 1019,
        "pre_local_low": 5146.24,
        "confirmation_time": "2026-03-05T13:15:00Z",
        "impulse_extreme": 5126.99,
        "fib50": 5142.955,
        "fib62": 5146.787,
        "entry_mid": 5144.871,
        "invalid": 5158.92,
        "risk_points": 14.049,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-05T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5168.02,
        "D_prior_index": 44,
        "H4_prior_index": 267,
        "H1_prior_index": 1020,
        "pre_local_low": 5146.24,
        "confirmation_time": "2026-03-05T13:15:00Z",
        "impulse_extreme": 5126.99,
        "fib50": 5147.505,
        "fib62": 5152.429,
        "entry_mid": 5149.967,
        "invalid": 5168.02,
        "risk_points": 18.053,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5161.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5165.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5160.755,
        "D_prior_index": 44,
        "H4_prior_index": 267,
        "H1_prior_index": 1021,
        "pre_local_high": 5171.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5109.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5102.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5123.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T15:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5119.965,
        "D_prior_index": 44,
        "H4_prior_index": 268,
        "H1_prior_index": 1024,
        "pre_local_low": 5081.23,
        "confirmation_time": "2026-03-05T15:05:00Z",
        "impulse_extreme": 5060.625,
        "fib50": 5090.295,
        "fib62": 5097.416,
        "entry_mid": 5093.855,
        "invalid": 5119.965,
        "risk_points": 26.11,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T15:15:00Z",
        "target1": 5067.746,
        "target2": 5041.636,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T16:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5074.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T16:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5104.76,
        "D_prior_index": 44,
        "H4_prior_index": 268,
        "H1_prior_index": 1025,
        "pre_local_low": 5060.625,
        "confirmation_time": "2026-03-05T17:50:00Z",
        "impulse_extreme": 5058.405,
        "fib50": 5081.583,
        "fib62": 5087.145,
        "entry_mid": 5084.364,
        "invalid": 5104.76,
        "risk_points": 20.396,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T18:35:00Z",
        "target1": 5063.968,
        "target2": 5043.571,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5054.22,
        "D_prior_index": 44,
        "H4_prior_index": 268,
        "H1_prior_index": 1025,
        "pre_local_high": 5119.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5050.905,
        "D_prior_index": 44,
        "H4_prior_index": 269,
        "H1_prior_index": 1027,
        "pre_local_high": 5089.5,
        "confirmation_time": "2026-03-05T20:15:00Z",
        "impulse_extreme": 5094.925,
        "fib50": 5072.915,
        "fib62": 5067.633,
        "entry_mid": 5070.274,
        "invalid": 5050.905,
        "risk_points": 19.369,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T21:10:00Z",
        "target1": 5089.643,
        "target2": 5109.011,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-05T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5076.205,
        "D_prior_index": 44,
        "H4_prior_index": 269,
        "H1_prior_index": 1027,
        "pre_local_low": 5050.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5055.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5070.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T20:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5061.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5074.335,
        "D_prior_index": 44,
        "H4_prior_index": 269,
        "H1_prior_index": 1029,
        "pre_local_high": 5094.925,
        "confirmation_time": "2026-03-05T23:15:00Z",
        "impulse_extreme": 5096.835,
        "fib50": 5085.585,
        "fib62": 5082.885,
        "entry_mid": 5084.235,
        "invalid": 5074.335,
        "risk_points": 9.9,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T23:55:00Z",
        "target1": 5094.135,
        "target2": 5104.035,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-05T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.03,
        "D_prior_index": 44,
        "H4_prior_index": 269,
        "H1_prior_index": 1029,
        "pre_local_high": 5094.925,
        "confirmation_time": "2026-03-05T23:15:00Z",
        "impulse_extreme": 5096.835,
        "fib50": 5084.932,
        "fib62": 5082.076,
        "entry_mid": 5083.504,
        "invalid": 5073.03,
        "risk_points": 10.474,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-05T23:55:00Z",
        "target1": 5093.978,
        "target2": 5104.453,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T21-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T21:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5072.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T21-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T21:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5084.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T21-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T21:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5072.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T21-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T21:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5082.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T21:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5085.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-05T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-05T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5096.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5074.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5092.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5075.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5066.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5089.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5129.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-06T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5136.485,
        "D_prior_index": 45,
        "H4_prior_index": 271,
        "H1_prior_index": 1036,
        "pre_local_low": 5122.075,
        "confirmation_time": "2026-03-06T05:35:00Z",
        "impulse_extreme": 5119.14,
        "fib50": 5127.812,
        "fib62": 5129.894,
        "entry_mid": 5128.853,
        "invalid": 5136.485,
        "risk_points": 7.632,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5136.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5122.995,
        "D_prior_index": 45,
        "H4_prior_index": 271,
        "H1_prior_index": 1037,
        "pre_local_high": 5141.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5122.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5109.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5123.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5119.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5107.9,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1039,
        "pre_local_high": 5123.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5110.91,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1040,
        "pre_local_high": 5123.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-06T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5123.16,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1040,
        "pre_local_low": 5105.72,
        "confirmation_time": "2026-03-06T08:25:00Z",
        "impulse_extreme": 5099.33,
        "fib50": 5111.245,
        "fib62": 5114.105,
        "entry_mid": 5112.675,
        "invalid": 5123.16,
        "risk_points": 10.485,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-06T08:45:00Z",
        "target1": 5102.19,
        "target2": 5091.704,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T08:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5096.54,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1040,
        "pre_local_high": 5123.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-06T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5113.9,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1040,
        "pre_local_low": 5096.54,
        "confirmation_time": "2026-03-06T09:10:00Z",
        "impulse_extreme": 5094.62,
        "fib50": 5104.26,
        "fib62": 5106.574,
        "entry_mid": 5105.417,
        "invalid": 5113.9,
        "risk_points": 8.483,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5092.02,
        "D_prior_index": 45,
        "H4_prior_index": 272,
        "H1_prior_index": 1041,
        "pre_local_high": 5123.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5103.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5093.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-06T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5093.15,
        "D_prior_index": 45,
        "H4_prior_index": 273,
        "H1_prior_index": 1042,
        "pre_local_low": 5075.66,
        "confirmation_time": "2026-03-06T13:05:00Z",
        "impulse_extreme": 5065.5,
        "fib50": 5079.325,
        "fib62": 5082.643,
        "entry_mid": 5080.984,
        "invalid": 5093.15,
        "risk_points": 12.166,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-06T13:20:00Z",
        "target1": 5068.818,
        "target2": 5056.652,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5080.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-06T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5099.735,
        "D_prior_index": 45,
        "H4_prior_index": 273,
        "H1_prior_index": 1043,
        "pre_local_low": 5075.66,
        "confirmation_time": "2026-03-06T13:05:00Z",
        "impulse_extreme": 5065.5,
        "fib50": 5082.618,
        "fib62": 5086.726,
        "entry_mid": 5084.672,
        "invalid": 5099.735,
        "risk_points": 15.063,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-06T13:20:00Z",
        "target1": 5069.608,
        "target2": 5054.545,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5096.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-06T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5085.305,
        "D_prior_index": 45,
        "H4_prior_index": 273,
        "H1_prior_index": 1044,
        "pre_local_high": 5099.735,
        "confirmation_time": "2026-03-06T13:30:00Z",
        "impulse_extreme": 5126.635,
        "fib50": 5105.97,
        "fib62": 5101.01,
        "entry_mid": 5103.49,
        "invalid": 5085.305,
        "risk_points": 18.185,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-06T13:50:00Z",
        "target1": 5121.675,
        "target2": 5139.861,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5096.555,
        "D_prior_index": 45,
        "H4_prior_index": 273,
        "H1_prior_index": 1044,
        "pre_local_low": 5063.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5088.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-06T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5073.97,
        "D_prior_index": 45,
        "H4_prior_index": 273,
        "H1_prior_index": 1045,
        "pre_local_high": 5131.245,
        "confirmation_time": "2026-03-06T15:00:00Z",
        "impulse_extreme": 5159.185,
        "fib50": 5116.578,
        "fib62": 5106.352,
        "entry_mid": 5111.465,
        "invalid": 5073.97,
        "risk_points": 37.495,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-06T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5084.185,
        "D_prior_index": 45,
        "H4_prior_index": 274,
        "H1_prior_index": 1046,
        "pre_local_high": 5131.245,
        "confirmation_time": "2026-03-06T15:00:00Z",
        "impulse_extreme": 5159.185,
        "fib50": 5121.685,
        "fib62": 5112.685,
        "entry_mid": 5117.185,
        "invalid": 5084.185,
        "risk_points": 33.0,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5115.7,
        "D_prior_index": 45,
        "H4_prior_index": 274,
        "H1_prior_index": 1046,
        "pre_local_low": 5065.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5153.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-06T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5125.865,
        "D_prior_index": 45,
        "H4_prior_index": 274,
        "H1_prior_index": 1048,
        "pre_local_high": 5171.89,
        "confirmation_time": "2026-03-06T19:15:00Z",
        "impulse_extreme": 5174.67,
        "fib50": 5150.267,
        "fib62": 5144.411,
        "entry_mid": 5147.339,
        "invalid": 5125.865,
        "risk_points": 21.474,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-06T20:35:00Z",
        "target1": 5168.813,
        "target2": 5190.288,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5148.24,
        "D_prior_index": 45,
        "H4_prior_index": 274,
        "H1_prior_index": 1048,
        "pre_local_low": 5125.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5129.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5145.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5152.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-06T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5133.04,
        "D_prior_index": 45,
        "H4_prior_index": 274,
        "H1_prior_index": 1049,
        "pre_local_high": 5153.3,
        "confirmation_time": "2026-03-06T18:35:00Z",
        "impulse_extreme": 5157.98,
        "fib50": 5145.51,
        "fib62": 5142.517,
        "entry_mid": 5144.014,
        "invalid": 5133.04,
        "risk_points": 10.974,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5167.875,
        "D_prior_index": 45,
        "H4_prior_index": 275,
        "H1_prior_index": 1050,
        "pre_local_low": 5129.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5174.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5156.79,
        "D_prior_index": 45,
        "H4_prior_index": 275,
        "H1_prior_index": 1051,
        "pre_local_high": 5174.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-06T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5161.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-06T21-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-06T21:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5176.63,
        "D_prior_index": 45,
        "H4_prior_index": 275,
        "H1_prior_index": 1053,
        "pre_local_low": 5149.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-08T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-08T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5164.55,
        "D_prior_index": 46,
        "H4_prior_index": 276,
        "H1_prior_index": 1054,
        "pre_local_low": 5118.53,
        "confirmation_time": "2026-03-08T22:45:00Z",
        "impulse_extreme": 5106.92,
        "fib50": 5135.735,
        "fib62": 5142.651,
        "entry_mid": 5139.193,
        "invalid": 5164.55,
        "risk_points": 25.357,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-08T23:00:00Z",
        "target1": 5113.836,
        "target2": 5088.478,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-08T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-08T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5104.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-08T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-08T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5136.2,
        "D_prior_index": 46,
        "H4_prior_index": 276,
        "H1_prior_index": 1055,
        "pre_local_low": 5104.345,
        "confirmation_time": "2026-03-08T23:10:00Z",
        "impulse_extreme": 5093.745,
        "fib50": 5114.972,
        "fib62": 5120.067,
        "entry_mid": 5117.52,
        "invalid": 5136.2,
        "risk_points": 18.68,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5081.36,
        "D_prior_index": 46,
        "H4_prior_index": 276,
        "H1_prior_index": 1056,
        "pre_local_low": 5044.14,
        "confirmation_time": "2026-03-09T00:10:00Z",
        "impulse_extreme": 5028.54,
        "fib50": 5054.95,
        "fib62": 5061.288,
        "entry_mid": 5058.119,
        "invalid": 5081.36,
        "risk_points": 23.241,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T00:30:00Z",
        "target1": 5034.878,
        "target2": 5011.638,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5060.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5033.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5015.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T02:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5055.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5084.245,
        "D_prior_index": 46,
        "H4_prior_index": 277,
        "H1_prior_index": 1059,
        "pre_local_high": 5099.82,
        "confirmation_time": "2026-03-09T05:30:00Z",
        "impulse_extreme": 5108.575,
        "fib50": 5096.41,
        "fib62": 5093.49,
        "entry_mid": 5094.95,
        "invalid": 5084.245,
        "risk_points": 10.705,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T07:00:00Z",
        "target1": 5105.655,
        "target2": 5116.361,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5099.82,
        "D_prior_index": 46,
        "H4_prior_index": 277,
        "H1_prior_index": 1059,
        "pre_local_low": 5055.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5102.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5081.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5086.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5097.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5087.495,
        "D_prior_index": 46,
        "H4_prior_index": 277,
        "H1_prior_index": 1060,
        "pre_local_high": 5102.255,
        "confirmation_time": "2026-03-09T05:30:00Z",
        "impulse_extreme": 5108.575,
        "fib50": 5098.035,
        "fib62": 5095.505,
        "entry_mid": 5096.77,
        "invalid": 5087.495,
        "risk_points": 9.275,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T06:50:00Z",
        "target1": 5106.045,
        "target2": 5115.321,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5085.36,
        "D_prior_index": 46,
        "H4_prior_index": 277,
        "H1_prior_index": 1060,
        "pre_local_high": 5102.255,
        "confirmation_time": "2026-03-09T05:30:00Z",
        "impulse_extreme": 5108.575,
        "fib50": 5096.967,
        "fib62": 5094.182,
        "entry_mid": 5095.575,
        "invalid": 5085.36,
        "risk_points": 10.215,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T07:00:00Z",
        "target1": 5105.789,
        "target2": 5116.004,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5081.185,
        "D_prior_index": 46,
        "H4_prior_index": 278,
        "H1_prior_index": 1061,
        "pre_local_high": 5102.255,
        "confirmation_time": "2026-03-09T05:30:00Z",
        "impulse_extreme": 5108.575,
        "fib50": 5094.88,
        "fib62": 5091.593,
        "entry_mid": 5093.237,
        "invalid": 5081.185,
        "risk_points": 12.052,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T07:00:00Z",
        "target1": 5105.288,
        "target2": 5117.34,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5104.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5119.22,
        "D_prior_index": 46,
        "H4_prior_index": 278,
        "H1_prior_index": 1062,
        "pre_local_high": 5140.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5108.03,
        "D_prior_index": 46,
        "H4_prior_index": 278,
        "H1_prior_index": 1063,
        "pre_local_low": 5088.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5111.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5102.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T09:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5132.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5096.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5097.52,
        "D_prior_index": 46,
        "H4_prior_index": 279,
        "H1_prior_index": 1067,
        "pre_local_low": 5083.845,
        "confirmation_time": "2026-03-09T13:40:00Z",
        "impulse_extreme": 5074.3,
        "fib50": 5085.91,
        "fib62": 5088.696,
        "entry_mid": 5087.303,
        "invalid": 5097.52,
        "risk_points": 10.217,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T14:00:00Z",
        "target1": 5077.086,
        "target2": 5066.87,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5093.215,
        "D_prior_index": 46,
        "H4_prior_index": 279,
        "H1_prior_index": 1067,
        "pre_local_low": 5079.93,
        "confirmation_time": "2026-03-09T13:40:00Z",
        "impulse_extreme": 5074.3,
        "fib50": 5083.757,
        "fib62": 5086.027,
        "entry_mid": 5084.892,
        "invalid": 5093.215,
        "risk_points": 8.323,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T13:45:00Z",
        "target1": 5076.57,
        "target2": 5068.247,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5112.505,
        "D_prior_index": 46,
        "H4_prior_index": 279,
        "H1_prior_index": 1068,
        "pre_local_low": 5079.93,
        "confirmation_time": "2026-03-09T13:40:00Z",
        "impulse_extreme": 5074.3,
        "fib50": 5093.403,
        "fib62": 5097.987,
        "entry_mid": 5095.695,
        "invalid": 5112.505,
        "risk_points": 16.81,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T14:35:00Z",
        "target1": 5078.885,
        "target2": 5062.074,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5084.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5111.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5067.42,
        "D_prior_index": 46,
        "H4_prior_index": 280,
        "H1_prior_index": 1069,
        "pre_local_high": 5112.505,
        "confirmation_time": "2026-03-09T14:40:00Z",
        "impulse_extreme": 5114.99,
        "fib50": 5091.205,
        "fib62": 5085.497,
        "entry_mid": 5088.351,
        "invalid": 5067.42,
        "risk_points": 20.931,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T14:50:00Z",
        "target1": 5109.282,
        "target2": 5130.212,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5060.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5088.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T14:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5116.28,
        "D_prior_index": 46,
        "H4_prior_index": 280,
        "H1_prior_index": 1070,
        "pre_local_low": 5060.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5079.585,
        "D_prior_index": 46,
        "H4_prior_index": 280,
        "H1_prior_index": 1071,
        "pre_local_high": 5116.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5102.78,
        "D_prior_index": 46,
        "H4_prior_index": 280,
        "H1_prior_index": 1071,
        "pre_local_low": 5060.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5103.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5109.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5099.605,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1073,
        "pre_local_low": 5089.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5130.625,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1075,
        "pre_local_low": 5089.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T19:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5118.375,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1075,
        "pre_local_high": 5134.475,
        "confirmation_time": "2026-03-09T19:20:00Z",
        "impulse_extreme": 5144.01,
        "fib50": 5131.193,
        "fib62": 5128.116,
        "entry_mid": 5129.654,
        "invalid": 5118.375,
        "risk_points": 11.279,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T19:30:00Z",
        "target1": 5140.934,
        "target2": 5152.213,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5148.205,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1076,
        "pre_local_low": 5101.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5134.4,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1076,
        "pre_local_high": 5148.205,
        "confirmation_time": "2026-03-09T22:55:00Z",
        "impulse_extreme": 5153.285,
        "fib50": 5143.842,
        "fib62": 5141.576,
        "entry_mid": 5142.709,
        "invalid": 5134.4,
        "risk_points": 8.309,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-09T23:00:00Z",
        "target1": 5151.019,
        "target2": 5159.328,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5134.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5140.825,
        "D_prior_index": 46,
        "H4_prior_index": 281,
        "H1_prior_index": 1076,
        "pre_local_low": 5118.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-09T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5117.355,
        "D_prior_index": 47,
        "H4_prior_index": 282,
        "H1_prior_index": 1077,
        "pre_local_high": 5148.205,
        "confirmation_time": "2026-03-09T22:55:00Z",
        "impulse_extreme": 5153.285,
        "fib50": 5135.32,
        "fib62": 5131.008,
        "entry_mid": 5133.164,
        "invalid": 5117.355,
        "risk_points": 15.809,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T00:00:00Z",
        "target1": 5148.973,
        "target2": 5164.783,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-09T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5154.825,
        "D_prior_index": 47,
        "H4_prior_index": 282,
        "H1_prior_index": 1078,
        "pre_local_low": 5117.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-09T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-09T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5156.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-10T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5124.89,
        "D_prior_index": 47,
        "H4_prior_index": 282,
        "H1_prior_index": 1079,
        "pre_local_high": 5156.21,
        "confirmation_time": "2026-03-10T01:20:00Z",
        "impulse_extreme": 5161.69,
        "fib50": 5143.29,
        "fib62": 5138.874,
        "entry_mid": 5141.082,
        "invalid": 5124.89,
        "risk_points": 16.192,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5137.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5139.365,
        "D_prior_index": 47,
        "H4_prior_index": 282,
        "H1_prior_index": 1079,
        "pre_local_low": 5124.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-10T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5124.835,
        "D_prior_index": 47,
        "H4_prior_index": 283,
        "H1_prior_index": 1080,
        "pre_local_high": 5155.705,
        "confirmation_time": "2026-03-10T01:20:00Z",
        "impulse_extreme": 5161.69,
        "fib50": 5143.262,
        "fib62": 5138.84,
        "entry_mid": 5141.051,
        "invalid": 5124.835,
        "risk_points": 16.216,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5169.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5187.055,
        "D_prior_index": 47,
        "H4_prior_index": 283,
        "H1_prior_index": 1081,
        "pre_local_low": 5124.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T02:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5185.645,
        "D_prior_index": 47,
        "H4_prior_index": 283,
        "H1_prior_index": 1081,
        "pre_local_low": 5139.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5161.705,
        "D_prior_index": 47,
        "H4_prior_index": 283,
        "H1_prior_index": 1082,
        "pre_local_high": 5187.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5160.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5154.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5166.645,
        "D_prior_index": 47,
        "H4_prior_index": 283,
        "H1_prior_index": 1083,
        "pre_local_low": 5154.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5165.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5174.38,
        "D_prior_index": 47,
        "H4_prior_index": 284,
        "H1_prior_index": 1084,
        "pre_local_low": 5154.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5166.87,
        "D_prior_index": 47,
        "H4_prior_index": 284,
        "H1_prior_index": 1084,
        "pre_local_high": 5174.38,
        "confirmation_time": "2026-03-10T05:50:00Z",
        "impulse_extreme": 5176.565,
        "fib50": 5171.717,
        "fib62": 5170.554,
        "entry_mid": 5171.136,
        "invalid": 5166.87,
        "risk_points": 4.266,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T07:00:00Z",
        "target1": 5175.402,
        "target2": 5179.667,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5171.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5173.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5170.83,
        "D_prior_index": 47,
        "H4_prior_index": 284,
        "H1_prior_index": 1086,
        "pre_local_high": 5181.1,
        "confirmation_time": "2026-03-10T07:55:00Z",
        "impulse_extreme": 5181.755,
        "fib50": 5176.292,
        "fib62": 5174.981,
        "entry_mid": 5175.637,
        "invalid": 5170.83,
        "risk_points": 4.807,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T08:05:00Z",
        "target1": 5180.444,
        "target2": 5185.251,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5178.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T07:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5178.525,
        "D_prior_index": 47,
        "H4_prior_index": 284,
        "H1_prior_index": 1086,
        "pre_local_low": 5158.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5185.545,
        "D_prior_index": 47,
        "H4_prior_index": 284,
        "H1_prior_index": 1087,
        "pre_local_low": 5158.395,
        "confirmation_time": "2026-03-10T10:35:00Z",
        "impulse_extreme": 5156.5,
        "fib50": 5171.023,
        "fib62": 5174.508,
        "entry_mid": 5172.765,
        "invalid": 5185.545,
        "risk_points": 12.78,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T10:45:00Z",
        "target1": 5159.985,
        "target2": 5147.206,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T08:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5195.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5180.58,
        "D_prior_index": 47,
        "H4_prior_index": 285,
        "H1_prior_index": 1088,
        "pre_local_high": 5195.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5189.42,
        "D_prior_index": 47,
        "H4_prior_index": 285,
        "H1_prior_index": 1088,
        "pre_local_low": 5175.005,
        "confirmation_time": "2026-03-10T10:25:00Z",
        "impulse_extreme": 5172.94,
        "fib50": 5181.18,
        "fib62": 5183.158,
        "entry_mid": 5182.169,
        "invalid": 5189.42,
        "risk_points": 7.251,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T11:00:00Z",
        "target1": 5174.918,
        "target2": 5167.666,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5171.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T15:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5203.285,
        "D_prior_index": 47,
        "H4_prior_index": 286,
        "H1_prior_index": 1094,
        "pre_local_high": 5228.925,
        "confirmation_time": "2026-03-10T15:30:00Z",
        "impulse_extreme": 5236.605,
        "fib50": 5219.945,
        "fib62": 5215.947,
        "entry_mid": 5217.946,
        "invalid": 5203.285,
        "risk_points": 14.661,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T18:00:00Z",
        "target1": 5232.607,
        "target2": 5247.267,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5228.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5238.775,
        "D_prior_index": 47,
        "H4_prior_index": 286,
        "H1_prior_index": 1094,
        "pre_local_low": 5185.3,
        "confirmation_time": "2026-03-10T18:15:00Z",
        "impulse_extreme": 5160.65,
        "fib50": 5199.712,
        "fib62": 5209.087,
        "entry_mid": 5204.4,
        "invalid": 5238.775,
        "risk_points": 34.375,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T18:25:00Z",
        "target1": 5170.025,
        "target2": 5135.65,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5226.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5223.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5234.96,
        "D_prior_index": 47,
        "H4_prior_index": 287,
        "H1_prior_index": 1096,
        "pre_local_low": 5222.75,
        "confirmation_time": "2026-03-10T18:00:00Z",
        "impulse_extreme": 5217.63,
        "fib50": 5226.295,
        "fib62": 5228.375,
        "entry_mid": 5227.335,
        "invalid": 5234.96,
        "risk_points": 7.625,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-10T18:10:00Z",
        "target1": 5219.71,
        "target2": 5212.084,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5226.385,
        "D_prior_index": 47,
        "H4_prior_index": 287,
        "H1_prior_index": 1096,
        "pre_local_high": 5235.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5184.41,
        "D_prior_index": 47,
        "H4_prior_index": 287,
        "H1_prior_index": 1098,
        "pre_local_high": 5234.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5191.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-10T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5199.165,
        "D_prior_index": 47,
        "H4_prior_index": 287,
        "H1_prior_index": 1099,
        "pre_local_low": 5179.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5197.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5187.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5185.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5196.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5187.835,
        "D_prior_index": 48,
        "H4_prior_index": 288,
        "H1_prior_index": 1101,
        "pre_local_high": 5199.165,
        "confirmation_time": "2026-03-11T00:15:00Z",
        "impulse_extreme": 5203.87,
        "fib50": 5195.852,
        "fib62": 5193.928,
        "entry_mid": 5194.89,
        "invalid": 5187.835,
        "risk_points": 7.055,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T02:10:00Z",
        "target1": 5201.946,
        "target2": 5209.001,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-10T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5197.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-10T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-10T23:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5187.925,
        "D_prior_index": 48,
        "H4_prior_index": 288,
        "H1_prior_index": 1101,
        "pre_local_high": 5197.985,
        "confirmation_time": "2026-03-11T00:15:00Z",
        "impulse_extreme": 5203.87,
        "fib50": 5195.898,
        "fib62": 5193.984,
        "entry_mid": 5194.941,
        "invalid": 5187.925,
        "risk_points": 7.016,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T02:10:00Z",
        "target1": 5201.957,
        "target2": 5208.972,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5186.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5198.34,
        "D_prior_index": 48,
        "H4_prior_index": 288,
        "H1_prior_index": 1102,
        "pre_local_low": 5185.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5223.385,
        "D_prior_index": 48,
        "H4_prior_index": 289,
        "H1_prior_index": 1103,
        "pre_local_low": 5186.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5210.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5203.78,
        "D_prior_index": 48,
        "H4_prior_index": 289,
        "H1_prior_index": 1105,
        "pre_local_high": 5220.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5204.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5201.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5208.535,
        "D_prior_index": 48,
        "H4_prior_index": 290,
        "H1_prior_index": 1107,
        "pre_local_low": 5199.42,
        "confirmation_time": "2026-03-11T05:30:00Z",
        "impulse_extreme": 5190.705,
        "fib50": 5199.62,
        "fib62": 5201.76,
        "entry_mid": 5200.69,
        "invalid": 5208.535,
        "risk_points": 7.845,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T05:35:00Z",
        "target1": 5192.845,
        "target2": 5184.999,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5210.97,
        "D_prior_index": 48,
        "H4_prior_index": 290,
        "H1_prior_index": 1108,
        "pre_local_low": 5190.705,
        "confirmation_time": "2026-03-11T07:35:00Z",
        "impulse_extreme": 5185.26,
        "fib50": 5198.115,
        "fib62": 5201.2,
        "entry_mid": 5199.658,
        "invalid": 5210.97,
        "risk_points": 11.312,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T08:10:00Z",
        "target1": 5188.345,
        "target2": 5177.033,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5202.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5188.14,
        "D_prior_index": 48,
        "H4_prior_index": 290,
        "H1_prior_index": 1110,
        "pre_local_high": 5207.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.52,
        "D_prior_index": 48,
        "H4_prior_index": 291,
        "H1_prior_index": 1111,
        "pre_local_high": 5198.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.47,
        "D_prior_index": 48,
        "H4_prior_index": 291,
        "H1_prior_index": 1112,
        "pre_local_high": 5197.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5195.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5193.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5190.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.87,
        "D_prior_index": 48,
        "H4_prior_index": 291,
        "H1_prior_index": 1113,
        "pre_local_high": 5195.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5195.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5197.175,
        "D_prior_index": 48,
        "H4_prior_index": 291,
        "H1_prior_index": 1114,
        "pre_local_low": 5175.87,
        "confirmation_time": "2026-03-11T12:50:00Z",
        "impulse_extreme": 5172.96,
        "fib50": 5185.068,
        "fib62": 5187.973,
        "entry_mid": 5186.52,
        "invalid": 5197.175,
        "risk_points": 10.655,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T14:00:00Z",
        "target1": 5175.866,
        "target2": 5165.211,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5162.175,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1115,
        "pre_local_high": 5197.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5182.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5183.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5174.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5196.315,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1116,
        "pre_local_low": 5149.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5168.59,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1117,
        "pre_local_high": 5196.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5166.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5164.075,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1117,
        "pre_local_high": 5196.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.81,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1118,
        "pre_local_high": 5196.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5172.68,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1118,
        "pre_local_low": 5163.81,
        "confirmation_time": "2026-03-11T17:35:00Z",
        "impulse_extreme": 5158.47,
        "fib50": 5165.575,
        "fib62": 5167.28,
        "entry_mid": 5166.428,
        "invalid": 5172.68,
        "risk_points": 6.252,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T17:45:00Z",
        "target1": 5160.175,
        "target2": 5153.923,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5178.15,
        "D_prior_index": 48,
        "H4_prior_index": 292,
        "H1_prior_index": 1118,
        "pre_local_low": 5163.81,
        "confirmation_time": "2026-03-11T17:35:00Z",
        "impulse_extreme": 5158.47,
        "fib50": 5168.31,
        "fib62": 5170.672,
        "entry_mid": 5169.491,
        "invalid": 5178.15,
        "risk_points": 8.659,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-11T17:50:00Z",
        "target1": 5160.832,
        "target2": 5152.172,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5181.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-11T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5169.375,
        "D_prior_index": 48,
        "H4_prior_index": 293,
        "H1_prior_index": 1121,
        "pre_local_high": 5178.395,
        "confirmation_time": "2026-03-11T19:40:00Z",
        "impulse_extreme": 5180.13,
        "fib50": 5174.753,
        "fib62": 5173.462,
        "entry_mid": 5174.107,
        "invalid": 5169.375,
        "risk_points": 4.732,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5176.79,
        "D_prior_index": 48,
        "H4_prior_index": 293,
        "H1_prior_index": 1122,
        "pre_local_high": 5183.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.56,
        "D_prior_index": 48,
        "H4_prior_index": 293,
        "H1_prior_index": 1122,
        "pre_local_high": 5183.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-11T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5178.525,
        "D_prior_index": 48,
        "H4_prior_index": 293,
        "H1_prior_index": 1122,
        "pre_local_low": 5171.085,
        "confirmation_time": "2026-03-11T22:25:00Z",
        "impulse_extreme": 5165.58,
        "fib50": 5172.052,
        "fib62": 5173.606,
        "entry_mid": 5172.829,
        "invalid": 5178.525,
        "risk_points": 5.696,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T01:45:00Z",
        "target1": 5167.133,
        "target2": 5161.438,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-11T22:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5165.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-11T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-11T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5157.94,
        "D_prior_index": 49,
        "H4_prior_index": 294,
        "H1_prior_index": 1124,
        "pre_local_low": 5129.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5125.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5161.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5150.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5151.435,
        "D_prior_index": 49,
        "H4_prior_index": 295,
        "H1_prior_index": 1126,
        "pre_local_high": 5167.065,
        "confirmation_time": "2026-03-12T01:40:00Z",
        "impulse_extreme": 5170.36,
        "fib50": 5160.898,
        "fib62": 5158.627,
        "entry_mid": 5159.762,
        "invalid": 5151.435,
        "risk_points": 8.327,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T02:35:00Z",
        "target1": 5168.089,
        "target2": 5176.416,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5173.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5167.175,
        "D_prior_index": 49,
        "H4_prior_index": 295,
        "H1_prior_index": 1127,
        "pre_local_high": 5174.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5147.405,
        "D_prior_index": 49,
        "H4_prior_index": 295,
        "H1_prior_index": 1128,
        "pre_local_high": 5175.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5154.665,
        "D_prior_index": 49,
        "H4_prior_index": 295,
        "H1_prior_index": 1128,
        "pre_local_low": 5145.935,
        "confirmation_time": "2026-03-12T04:35:00Z",
        "impulse_extreme": 5144.52,
        "fib50": 5149.593,
        "fib62": 5150.81,
        "entry_mid": 5150.201,
        "invalid": 5154.665,
        "risk_points": 4.464,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T05:30:00Z",
        "target1": 5145.737,
        "target2": 5141.274,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5149.925,
        "D_prior_index": 49,
        "H4_prior_index": 295,
        "H1_prior_index": 1129,
        "pre_local_high": 5175.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5154.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-12T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5137.17,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1130,
        "pre_local_high": 5154.665,
        "confirmation_time": "2026-03-12T05:45:00Z",
        "impulse_extreme": 5157.05,
        "fib50": 5147.11,
        "fib62": 5144.724,
        "entry_mid": 5145.917,
        "invalid": 5137.17,
        "risk_points": 8.747,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5158.09,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1131,
        "pre_local_low": 5137.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5147.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5170.39,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1131,
        "pre_local_low": 5137.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5164.52,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1132,
        "pre_local_high": 5170.39,
        "confirmation_time": "2026-03-12T07:40:00Z",
        "impulse_extreme": 5179.89,
        "fib50": 5172.205,
        "fib62": 5170.361,
        "entry_mid": 5171.283,
        "invalid": 5164.52,
        "risk_points": 6.763,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T12:05:00Z",
        "target1": 5178.046,
        "target2": 5184.808,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5170.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5170.68,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1132,
        "pre_local_low": 5147.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5189.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.88,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1133,
        "pre_local_high": 5189.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5182.915,
        "D_prior_index": 49,
        "H4_prior_index": 296,
        "H1_prior_index": 1133,
        "pre_local_low": 5165.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5175.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5174.43,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1134,
        "pre_local_high": 5189.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5191.79,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1135,
        "pre_local_low": 5174.43,
        "confirmation_time": "2026-03-12T12:00:00Z",
        "impulse_extreme": 5174.39,
        "fib50": 5183.09,
        "fib62": 5185.178,
        "entry_mid": 5184.134,
        "invalid": 5191.79,
        "risk_points": 7.656,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T12:50:00Z",
        "target1": 5176.478,
        "target2": 5168.822,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5175.965,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1135,
        "pre_local_high": 5191.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5184.16,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1135,
        "pre_local_low": 5174.43,
        "confirmation_time": "2026-03-12T12:00:00Z",
        "impulse_extreme": 5174.39,
        "fib50": 5179.275,
        "fib62": 5180.447,
        "entry_mid": 5179.861,
        "invalid": 5184.16,
        "risk_points": 4.299,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T12:45:00Z",
        "target1": 5175.562,
        "target2": 5171.264,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5181.675,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1136,
        "pre_local_low": 5172.875,
        "confirmation_time": "2026-03-12T12:05:00Z",
        "impulse_extreme": 5167.38,
        "fib50": 5174.528,
        "fib62": 5176.243,
        "entry_mid": 5175.385,
        "invalid": 5181.675,
        "risk_points": 6.29,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T12:30:00Z",
        "target1": 5169.095,
        "target2": 5162.806,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5163.685,
        "D_prior_index": 49,
        "H4_prior_index": 297,
        "H1_prior_index": 1137,
        "pre_local_high": 5184.16,
        "confirmation_time": "2026-03-12T13:10:00Z",
        "impulse_extreme": 5185.02,
        "fib50": 5174.353,
        "fib62": 5171.792,
        "entry_mid": 5173.072,
        "invalid": 5163.685,
        "risk_points": 9.387,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T13:15:00Z",
        "target1": 5182.46,
        "target2": 5191.847,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-12T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5186.145,
        "D_prior_index": 49,
        "H4_prior_index": 298,
        "H1_prior_index": 1138,
        "pre_local_low": 5163.685,
        "confirmation_time": "2026-03-12T13:35:00Z",
        "impulse_extreme": 5158.58,
        "fib50": 5172.363,
        "fib62": 5175.67,
        "entry_mid": 5174.016,
        "invalid": 5186.145,
        "risk_points": 12.129,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5155.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5149.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5138.475,
        "D_prior_index": 49,
        "H4_prior_index": 298,
        "H1_prior_index": 1139,
        "pre_local_high": 5186.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5134.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5135.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5121.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5138.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5125.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5120.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5102.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5112.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T19:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5095.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-12T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5097.005,
        "D_prior_index": 49,
        "H4_prior_index": 299,
        "H1_prior_index": 1144,
        "pre_local_low": 5079.37,
        "confirmation_time": "2026-03-12T20:25:00Z",
        "impulse_extreme": 5071.44,
        "fib50": 5084.222,
        "fib62": 5087.29,
        "entry_mid": 5085.756,
        "invalid": 5097.005,
        "risk_points": 11.249,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-12T22:05:00Z",
        "target1": 5074.508,
        "target2": 5063.259,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5055.125,
        "D_prior_index": 49,
        "H4_prior_index": 299,
        "H1_prior_index": 1145,
        "pre_local_high": 5099.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5096.365,
        "D_prior_index": 50,
        "H4_prior_index": 300,
        "H1_prior_index": 1147,
        "pre_local_low": 5055.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-12T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5099.625,
        "D_prior_index": 50,
        "H4_prior_index": 300,
        "H1_prior_index": 1147,
        "pre_local_low": 5066.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-12T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-12T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5101.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5108.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5110.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T01:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5121.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-13T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5108.72,
        "D_prior_index": 50,
        "H4_prior_index": 301,
        "H1_prior_index": 1149,
        "pre_local_high": 5121.795,
        "confirmation_time": "2026-03-13T01:55:00Z",
        "impulse_extreme": 5124.535,
        "fib50": 5116.628,
        "fib62": 5114.73,
        "entry_mid": 5115.679,
        "invalid": 5108.72,
        "risk_points": 6.959,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-13T02:20:00Z",
        "target1": 5122.637,
        "target2": 5129.596,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5128.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5109.285,
        "D_prior_index": 50,
        "H4_prior_index": 301,
        "H1_prior_index": 1151,
        "pre_local_high": 5128.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5108.605,
        "D_prior_index": 50,
        "H4_prior_index": 301,
        "H1_prior_index": 1151,
        "pre_local_high": 5128.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5106.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-13T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5118.175,
        "D_prior_index": 50,
        "H4_prior_index": 301,
        "H1_prior_index": 1152,
        "pre_local_low": 5106.42,
        "confirmation_time": "2026-03-13T04:20:00Z",
        "impulse_extreme": 5103.76,
        "fib50": 5110.968,
        "fib62": 5112.697,
        "entry_mid": 5111.832,
        "invalid": 5118.175,
        "risk_points": 6.343,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-13T05:30:00Z",
        "target1": 5105.49,
        "target2": 5099.147,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5102.825,
        "D_prior_index": 50,
        "H4_prior_index": 301,
        "H1_prior_index": 1152,
        "pre_local_high": 5118.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5102.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-13T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5110.505,
        "D_prior_index": 50,
        "H4_prior_index": 302,
        "H1_prior_index": 1153,
        "pre_local_low": 5102.76,
        "confirmation_time": "2026-03-13T05:40:00Z",
        "impulse_extreme": 5100.08,
        "fib50": 5105.292,
        "fib62": 5106.543,
        "entry_mid": 5105.918,
        "invalid": 5110.505,
        "risk_points": 4.587,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-13T05:50:00Z",
        "target1": 5101.331,
        "target2": 5096.744,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-13T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5111.26,
        "D_prior_index": 50,
        "H4_prior_index": 302,
        "H1_prior_index": 1153,
        "pre_local_low": 5102.76,
        "confirmation_time": "2026-03-13T05:40:00Z",
        "impulse_extreme": 5100.08,
        "fib50": 5105.67,
        "fib62": 5107.012,
        "entry_mid": 5106.341,
        "invalid": 5111.26,
        "risk_points": 4.919,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-13T06:00:00Z",
        "target1": 5101.422,
        "target2": 5096.502,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5098.415,
        "D_prior_index": 50,
        "H4_prior_index": 302,
        "H1_prior_index": 1153,
        "pre_local_high": 5117.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5107.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5087.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5085.665,
        "D_prior_index": 50,
        "H4_prior_index": 302,
        "H1_prior_index": 1154,
        "pre_local_high": 5111.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5084.02,
        "D_prior_index": 50,
        "H4_prior_index": 302,
        "H1_prior_index": 1155,
        "pre_local_high": 5111.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5071.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5093.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5082.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T08:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5061.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5084.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5084.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5083.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5094.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5096.915,
        "D_prior_index": 50,
        "H4_prior_index": 303,
        "H1_prior_index": 1158,
        "pre_local_low": 5076.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5104.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-13T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5116.64,
        "D_prior_index": 50,
        "H4_prior_index": 303,
        "H1_prior_index": 1160,
        "pre_local_low": 5086.385,
        "confirmation_time": "2026-03-13T14:35:00Z",
        "impulse_extreme": 5082.61,
        "fib50": 5099.625,
        "fib62": 5103.709,
        "entry_mid": 5101.667,
        "invalid": 5116.64,
        "risk_points": 14.973,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5110.435,
        "D_prior_index": 50,
        "H4_prior_index": 304,
        "H1_prior_index": 1161,
        "pre_local_high": 5122.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5096.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-13T13:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5116.97,
        "D_prior_index": 50,
        "H4_prior_index": 304,
        "H1_prior_index": 1161,
        "pre_local_low": 5096.57,
        "confirmation_time": "2026-03-13T14:10:00Z",
        "impulse_extreme": 5090.505,
        "fib50": 5103.738,
        "fib62": 5106.913,
        "entry_mid": 5105.325,
        "invalid": 5116.97,
        "risk_points": 11.645,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-13T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5071.505,
        "D_prior_index": 50,
        "H4_prior_index": 304,
        "H1_prior_index": 1163,
        "pre_local_low": 5035.535,
        "confirmation_time": "2026-03-13T15:55:00Z",
        "impulse_extreme": 5031.015,
        "fib50": 5051.26,
        "fib62": 5056.119,
        "entry_mid": 5053.689,
        "invalid": 5071.505,
        "risk_points": 17.816,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-13T16:35:00Z",
        "target1": 5035.874,
        "target2": 5018.058,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5019.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5062.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5051.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-13T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5064.08,
        "D_prior_index": 50,
        "H4_prior_index": 305,
        "H1_prior_index": 1165,
        "pre_local_low": 5019.2,
        "confirmation_time": "2026-03-13T19:45:00Z",
        "impulse_extreme": 5013.07,
        "fib50": 5038.575,
        "fib62": 5044.696,
        "entry_mid": 5041.636,
        "invalid": 5064.08,
        "risk_points": 22.444,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5036.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5049.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5049.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5032.435,
        "D_prior_index": 50,
        "H4_prior_index": 305,
        "H1_prior_index": 1167,
        "pre_local_high": 5064.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-13T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5012.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-13T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-13T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5021.71,
        "D_prior_index": 50,
        "H4_prior_index": 305,
        "H1_prior_index": 1168,
        "pre_local_low": 5009.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-15T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-15T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5014.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-15T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-15T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5031.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-15T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-15T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5026.335,
        "D_prior_index": 51,
        "H4_prior_index": 306,
        "H1_prior_index": 1170,
        "pre_local_low": 5000.91,
        "confirmation_time": "2026-03-15T23:20:00Z",
        "impulse_extreme": 4967.775,
        "fib50": 4997.055,
        "fib62": 5004.082,
        "entry_mid": 5000.569,
        "invalid": 5026.335,
        "risk_points": 25.766,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-15T23:55:00Z",
        "target1": 4974.802,
        "target2": 4949.036,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-15T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-15T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4972.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4983.7,
        "D_prior_index": 51,
        "H4_prior_index": 307,
        "H1_prior_index": 1172,
        "pre_local_high": 5030.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4982.675,
        "D_prior_index": 51,
        "H4_prior_index": 307,
        "H1_prior_index": 1172,
        "pre_local_high": 5030.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5019.065,
        "D_prior_index": 51,
        "H4_prior_index": 307,
        "H1_prior_index": 1173,
        "pre_local_low": 4982.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5010.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4997.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5026.505,
        "D_prior_index": 51,
        "H4_prior_index": 307,
        "H1_prior_index": 1175,
        "pre_local_low": 4997.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-16T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.12,
        "D_prior_index": 51,
        "H4_prior_index": 308,
        "H1_prior_index": 1176,
        "pre_local_high": 5026.505,
        "confirmation_time": "2026-03-16T06:10:00Z",
        "impulse_extreme": 5027.92,
        "fib50": 5019.52,
        "fib62": 5017.504,
        "entry_mid": 5018.512,
        "invalid": 5011.12,
        "risk_points": 7.392,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.37,
        "D_prior_index": 51,
        "H4_prior_index": 308,
        "H1_prior_index": 1176,
        "pre_local_low": 5003.41,
        "confirmation_time": "2026-03-16T07:25:00Z",
        "impulse_extreme": 4998.54,
        "fib50": 5009.455,
        "fib62": 5012.075,
        "entry_mid": 5010.765,
        "invalid": 5020.37,
        "risk_points": 9.605,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-16T11:15:00Z",
        "target1": 5001.16,
        "target2": 4991.554,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-16T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5013.1,
        "D_prior_index": 51,
        "H4_prior_index": 308,
        "H1_prior_index": 1177,
        "pre_local_high": 5026.505,
        "confirmation_time": "2026-03-16T06:10:00Z",
        "impulse_extreme": 5027.92,
        "fib50": 5020.51,
        "fib62": 5018.732,
        "entry_mid": 5019.621,
        "invalid": 5013.1,
        "risk_points": 6.521,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5036.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-16T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5000.465,
        "D_prior_index": 51,
        "H4_prior_index": 308,
        "H1_prior_index": 1179,
        "pre_local_low": 4991.895,
        "confirmation_time": "2026-03-16T08:10:00Z",
        "impulse_extreme": 4988.75,
        "fib50": 4994.608,
        "fib62": 4996.013,
        "entry_mid": 4995.31,
        "invalid": 5000.465,
        "risk_points": 5.155,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4988.055,
        "D_prior_index": 51,
        "H4_prior_index": 308,
        "H1_prior_index": 1179,
        "pre_local_high": 5026.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4991.805,
        "D_prior_index": 51,
        "H4_prior_index": 309,
        "H1_prior_index": 1180,
        "pre_local_low": 4979.955,
        "confirmation_time": "2026-03-16T09:50:00Z",
        "impulse_extreme": 4976.82,
        "fib50": 4984.312,
        "fib62": 4986.111,
        "entry_mid": 4985.212,
        "invalid": 4991.805,
        "risk_points": 6.593,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-16T10:20:00Z",
        "target1": 4978.618,
        "target2": 4972.025,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4970.23,
        "D_prior_index": 51,
        "H4_prior_index": 309,
        "H1_prior_index": 1181,
        "pre_local_high": 5003.63,
        "confirmation_time": "2026-03-16T11:15:00Z",
        "impulse_extreme": 5013.93,
        "fib50": 4992.08,
        "fib62": 4986.836,
        "entry_mid": 4989.458,
        "invalid": 4970.23,
        "risk_points": 19.228,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-16T14:45:00Z",
        "target1": 5008.686,
        "target2": 5027.914,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5025.585,
        "D_prior_index": 51,
        "H4_prior_index": 309,
        "H1_prior_index": 1183,
        "pre_local_low": 4992.255,
        "confirmation_time": "2026-03-16T15:25:00Z",
        "impulse_extreme": 4984.54,
        "fib50": 5005.062,
        "fib62": 5009.988,
        "entry_mid": 5007.525,
        "invalid": 5025.585,
        "risk_points": 18.06,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-16T18:25:00Z",
        "target1": 4989.465,
        "target2": 4971.406,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5011.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5030.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5018.305,
        "D_prior_index": 51,
        "H4_prior_index": 310,
        "H1_prior_index": 1184,
        "pre_local_high": 5030.215,
        "confirmation_time": "2026-03-16T13:40:00Z",
        "impulse_extreme": 5033.72,
        "fib50": 5026.013,
        "fib62": 5024.163,
        "entry_mid": 5025.088,
        "invalid": 5018.305,
        "risk_points": 6.783,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-16T13:45:00Z",
        "target1": 5031.87,
        "target2": 5038.653,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-16T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5038.145,
        "D_prior_index": 51,
        "H4_prior_index": 310,
        "H1_prior_index": 1185,
        "pre_local_low": 5011.92,
        "confirmation_time": "2026-03-16T14:30:00Z",
        "impulse_extreme": 5007.19,
        "fib50": 5022.667,
        "fib62": 5026.382,
        "entry_mid": 5024.525,
        "invalid": 5038.145,
        "risk_points": 13.62,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4984.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5005.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4974.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-16T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4984.015,
        "D_prior_index": 51,
        "H4_prior_index": 311,
        "H1_prior_index": 1188,
        "pre_local_high": 5003.9,
        "confirmation_time": "2026-03-16T18:25:00Z",
        "impulse_extreme": 5008.185,
        "fib50": 4996.1,
        "fib62": 4993.2,
        "entry_mid": 4994.65,
        "invalid": 4984.015,
        "risk_points": 10.635,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5017.905,
        "D_prior_index": 51,
        "H4_prior_index": 311,
        "H1_prior_index": 1189,
        "pre_local_low": 4984.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.465,
        "D_prior_index": 51,
        "H4_prior_index": 311,
        "H1_prior_index": 1190,
        "pre_local_low": 4984.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4998.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-16T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4998.685,
        "D_prior_index": 52,
        "H4_prior_index": 312,
        "H1_prior_index": 1192,
        "pre_local_high": 5021.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5014.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-16T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5007.17,
        "D_prior_index": 52,
        "H4_prior_index": 312,
        "H1_prior_index": 1193,
        "pre_local_high": 5016.185,
        "confirmation_time": "2026-03-17T01:35:00Z",
        "impulse_extreme": 5019.92,
        "fib50": 5013.545,
        "fib62": 5012.015,
        "entry_mid": 5012.78,
        "invalid": 5007.17,
        "risk_points": 5.61,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T06:00:00Z",
        "target1": 5018.39,
        "target2": 5024.0,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-16T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-16T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5015.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5000.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4998.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4994.935,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1195,
        "pre_local_high": 5015.61,
        "confirmation_time": "2026-03-17T01:35:00Z",
        "impulse_extreme": 5019.92,
        "fib50": 5007.427,
        "fib62": 5004.429,
        "entry_mid": 5005.928,
        "invalid": 4994.935,
        "risk_points": 10.993,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T06:10:00Z",
        "target1": 5016.922,
        "target2": 5027.915,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5029.98,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1196,
        "pre_local_low": 4994.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5019.85,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1196,
        "pre_local_high": 5029.98,
        "confirmation_time": "2026-03-17T03:20:00Z",
        "impulse_extreme": 5030.79,
        "fib50": 5025.32,
        "fib62": 5024.007,
        "entry_mid": 5024.664,
        "invalid": 5019.85,
        "risk_points": 4.814,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T05:50:00Z",
        "target1": 5029.477,
        "target2": 5034.291,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5021.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5029.54,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1196,
        "pre_local_low": 5001.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5020.93,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1197,
        "pre_local_high": 5029.98,
        "confirmation_time": "2026-03-17T03:20:00Z",
        "impulse_extreme": 5030.79,
        "fib50": 5025.86,
        "fib62": 5024.677,
        "entry_mid": 5025.268,
        "invalid": 5020.93,
        "risk_points": 4.338,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T05:50:00Z",
        "target1": 5029.607,
        "target2": 5033.945,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5033.76,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1197,
        "pre_local_low": 5019.85,
        "confirmation_time": "2026-03-17T06:00:00Z",
        "impulse_extreme": 5009.6,
        "fib50": 5021.68,
        "fib62": 5024.579,
        "entry_mid": 5023.13,
        "invalid": 5033.76,
        "risk_points": 10.63,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T07:30:00Z",
        "target1": 5012.499,
        "target2": 5001.869,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5025.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5030.655,
        "D_prior_index": 52,
        "H4_prior_index": 313,
        "H1_prior_index": 1198,
        "pre_local_low": 5019.85,
        "confirmation_time": "2026-03-17T06:00:00Z",
        "impulse_extreme": 5009.6,
        "fib50": 5020.128,
        "fib62": 5022.654,
        "entry_mid": 5021.391,
        "invalid": 5030.655,
        "risk_points": 9.264,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T07:30:00Z",
        "target1": 5012.127,
        "target2": 5002.862,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5026.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5032.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-17T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5044.9,
        "D_prior_index": 52,
        "H4_prior_index": 314,
        "H1_prior_index": 1199,
        "pre_local_low": 5025.945,
        "confirmation_time": "2026-03-17T05:55:00Z",
        "impulse_extreme": 5020.12,
        "fib50": 5032.51,
        "fib62": 5035.484,
        "entry_mid": 5033.997,
        "invalid": 5044.9,
        "risk_points": 10.903,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5005.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5017.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5009.18,
        "D_prior_index": 52,
        "H4_prior_index": 314,
        "H1_prior_index": 1201,
        "pre_local_high": 5036.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5018.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5026.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5019.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5029.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5018.685,
        "D_prior_index": 52,
        "H4_prior_index": 314,
        "H1_prior_index": 1202,
        "pre_local_high": 5029.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5025.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5026.055,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1203,
        "pre_local_low": 5009.18,
        "confirmation_time": "2026-03-17T10:05:00Z",
        "impulse_extreme": 5001.215,
        "fib50": 5013.635,
        "fib62": 5016.616,
        "entry_mid": 5015.125,
        "invalid": 5026.055,
        "risk_points": 10.93,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T12:20:00Z",
        "target1": 5004.196,
        "target2": 4993.266,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5012.77,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1203,
        "pre_local_high": 5029.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5011.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5016.615,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1204,
        "pre_local_low": 5007.355,
        "confirmation_time": "2026-03-17T10:05:00Z",
        "impulse_extreme": 5001.215,
        "fib50": 5008.915,
        "fib62": 5010.763,
        "entry_mid": 5009.839,
        "invalid": 5016.615,
        "risk_points": 6.776,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T10:25:00Z",
        "target1": 5003.063,
        "target2": 4996.287,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5009.59,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1204,
        "pre_local_low": 5001.215,
        "confirmation_time": "2026-03-17T10:35:00Z",
        "impulse_extreme": 4999.045,
        "fib50": 5004.318,
        "fib62": 5005.583,
        "entry_mid": 5004.95,
        "invalid": 5009.59,
        "risk_points": 4.64,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T10:50:00Z",
        "target1": 5000.31,
        "target2": 4995.671,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5004.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.635,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1205,
        "pre_local_low": 4992.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4999.485,
        "D_prior_index": 52,
        "H4_prior_index": 315,
        "H1_prior_index": 1206,
        "pre_local_high": 5011.635,
        "confirmation_time": "2026-03-17T12:15:00Z",
        "impulse_extreme": 5013.5,
        "fib50": 5006.493,
        "fib62": 5004.811,
        "entry_mid": 5005.652,
        "invalid": 4999.485,
        "risk_points": 6.167,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T13:50:00Z",
        "target1": 5011.818,
        "target2": 5017.985,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5023.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5018.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5019.67,
        "D_prior_index": 52,
        "H4_prior_index": 316,
        "H1_prior_index": 1207,
        "pre_local_low": 4999.485,
        "confirmation_time": "2026-03-17T15:25:00Z",
        "impulse_extreme": 4993.905,
        "fib50": 5006.788,
        "fib62": 5009.879,
        "entry_mid": 5008.333,
        "invalid": 5019.67,
        "risk_points": 11.337,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T17:20:00Z",
        "target1": 4996.997,
        "target2": 4985.66,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5005.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5002.965,
        "D_prior_index": 52,
        "H4_prior_index": 316,
        "H1_prior_index": 1208,
        "pre_local_high": 5031.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5019.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5006.33,
        "D_prior_index": 52,
        "H4_prior_index": 316,
        "H1_prior_index": 1209,
        "pre_local_high": 5031.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4999.475,
        "D_prior_index": 52,
        "H4_prior_index": 316,
        "H1_prior_index": 1210,
        "pre_local_low": 4973.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5006.03,
        "D_prior_index": 52,
        "H4_prior_index": 316,
        "H1_prior_index": 1210,
        "pre_local_low": 4973.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4997.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5006.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5001.23,
        "D_prior_index": 52,
        "H4_prior_index": 317,
        "H1_prior_index": 1211,
        "pre_local_high": 5006.545,
        "confirmation_time": "2026-03-17T18:15:00Z",
        "impulse_extreme": 5008.545,
        "fib50": 5004.887,
        "fib62": 5004.01,
        "entry_mid": 5004.449,
        "invalid": 5001.23,
        "risk_points": 3.219,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T18:25:00Z",
        "target1": 5007.667,
        "target2": 5010.886,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.695,
        "D_prior_index": 52,
        "H4_prior_index": 317,
        "H1_prior_index": 1211,
        "pre_local_high": 5008.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5009.21,
        "D_prior_index": 52,
        "H4_prior_index": 317,
        "H1_prior_index": 1212,
        "pre_local_low": 4996.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4996.445,
        "D_prior_index": 52,
        "H4_prior_index": 317,
        "H1_prior_index": 1213,
        "pre_local_high": 5009.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5005.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-17T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5001.615,
        "D_prior_index": 52,
        "H4_prior_index": 317,
        "H1_prior_index": 1214,
        "pre_local_high": 5006.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4997.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5005.27,
        "D_prior_index": 53,
        "H4_prior_index": 318,
        "H1_prior_index": 1215,
        "pre_local_low": 4997.585,
        "confirmation_time": "2026-03-17T22:40:00Z",
        "impulse_extreme": 4995.69,
        "fib50": 5000.48,
        "fib62": 5001.63,
        "entry_mid": 5001.055,
        "invalid": 5005.27,
        "risk_points": 4.215,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-17T22:45:00Z",
        "target1": 4996.84,
        "target2": 4992.624,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-17T22:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4993.39,
        "D_prior_index": 53,
        "H4_prior_index": 318,
        "H1_prior_index": 1215,
        "pre_local_high": 5006.645,
        "confirmation_time": "2026-03-18T00:05:00Z",
        "impulse_extreme": 5012.17,
        "fib50": 5002.78,
        "fib62": 5000.526,
        "entry_mid": 5001.653,
        "invalid": 4993.39,
        "risk_points": 8.263,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T00:25:00Z",
        "target1": 5009.916,
        "target2": 5018.18,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-17T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-17T22:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5003.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5001.31,
        "D_prior_index": 53,
        "H4_prior_index": 318,
        "H1_prior_index": 1217,
        "pre_local_high": 5007.58,
        "confirmation_time": "2026-03-18T00:05:00Z",
        "impulse_extreme": 5012.17,
        "fib50": 5006.74,
        "fib62": 5005.437,
        "entry_mid": 5006.088,
        "invalid": 5001.31,
        "risk_points": 4.778,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T00:15:00Z",
        "target1": 5010.867,
        "target2": 5015.645,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5000.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5008.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4998.225,
        "D_prior_index": 53,
        "H4_prior_index": 319,
        "H1_prior_index": 1218,
        "pre_local_high": 5012.24,
        "confirmation_time": "2026-03-18T01:15:00Z",
        "impulse_extreme": 5015.02,
        "fib50": 5006.623,
        "fib62": 5004.607,
        "entry_mid": 5005.615,
        "invalid": 4998.225,
        "risk_points": 7.39,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T01:30:00Z",
        "target1": 5013.005,
        "target2": 5020.394,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5016.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5002.565,
        "D_prior_index": 53,
        "H4_prior_index": 319,
        "H1_prior_index": 1219,
        "pre_local_low": 4991.455,
        "confirmation_time": "2026-03-18T03:00:00Z",
        "impulse_extreme": 4986.305,
        "fib50": 4994.435,
        "fib62": 4996.386,
        "entry_mid": 4995.411,
        "invalid": 5002.565,
        "risk_points": 7.154,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T03:10:00Z",
        "target1": 4988.256,
        "target2": 4981.102,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5007.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T02:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5004.345,
        "D_prior_index": 53,
        "H4_prior_index": 319,
        "H1_prior_index": 1219,
        "pre_local_low": 4991.455,
        "confirmation_time": "2026-03-18T03:00:00Z",
        "impulse_extreme": 4986.305,
        "fib50": 4995.325,
        "fib62": 4997.49,
        "entry_mid": 4996.407,
        "invalid": 5004.345,
        "risk_points": 7.938,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T03:10:00Z",
        "target1": 4988.47,
        "target2": 4980.532,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4986.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4996.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4997.6,
        "D_prior_index": 53,
        "H4_prior_index": 319,
        "H1_prior_index": 1220,
        "pre_local_low": 4986.305,
        "confirmation_time": "2026-03-18T04:35:00Z",
        "impulse_extreme": 4982.715,
        "fib50": 4990.158,
        "fib62": 4991.944,
        "entry_mid": 4991.051,
        "invalid": 4997.6,
        "risk_points": 6.549,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T05:05:00Z",
        "target1": 4984.501,
        "target2": 4977.952,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4989.44,
        "D_prior_index": 53,
        "H4_prior_index": 319,
        "H1_prior_index": 1221,
        "pre_local_high": 5007.105,
        "confirmation_time": "2026-03-18T06:10:00Z",
        "impulse_extreme": 5009.335,
        "fib50": 4999.387,
        "fib62": 4997.0,
        "entry_mid": 4998.194,
        "invalid": 4989.44,
        "risk_points": 8.754,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T07:45:00Z",
        "target1": 5006.948,
        "target2": 5015.701,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4993.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4993.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5002.845,
        "D_prior_index": 53,
        "H4_prior_index": 320,
        "H1_prior_index": 1222,
        "pre_local_low": 4981.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5011.07,
        "D_prior_index": 53,
        "H4_prior_index": 320,
        "H1_prior_index": 1223,
        "pre_local_low": 4981.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 5008.56,
        "D_prior_index": 53,
        "H4_prior_index": 320,
        "H1_prior_index": 1223,
        "pre_local_high": 5016.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 5015.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4987.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4983.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4977.455,
        "D_prior_index": 53,
        "H4_prior_index": 320,
        "H1_prior_index": 1225,
        "pre_local_high": 5015.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4991.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T09:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4984.87,
        "D_prior_index": 53,
        "H4_prior_index": 321,
        "H1_prior_index": 1226,
        "pre_local_high": 5007.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4995.85,
        "D_prior_index": 53,
        "H4_prior_index": 321,
        "H1_prior_index": 1226,
        "pre_local_low": 4977.455,
        "confirmation_time": "2026-03-18T10:35:00Z",
        "impulse_extreme": 4959.71,
        "fib50": 4977.78,
        "fib62": 4982.117,
        "entry_mid": 4979.948,
        "invalid": 4995.85,
        "risk_points": 15.902,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T10:40:00Z",
        "target1": 4964.047,
        "target2": 4948.145,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4990.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T10:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4958.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4950.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4974.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4870.87,
        "D_prior_index": 53,
        "H4_prior_index": 321,
        "H1_prior_index": 1229,
        "pre_local_high": 4974.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4834.38,
        "D_prior_index": 53,
        "H4_prior_index": 322,
        "H1_prior_index": 1230,
        "pre_local_high": 4957.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4856.795,
        "D_prior_index": 53,
        "H4_prior_index": 322,
        "H1_prior_index": 1231,
        "pre_local_high": 4894.67,
        "confirmation_time": "2026-03-18T17:20:00Z",
        "impulse_extreme": 4897.255,
        "fib50": 4877.025,
        "fib62": 4872.17,
        "entry_mid": 4874.597,
        "invalid": 4856.795,
        "risk_points": 17.802,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T18:25:00Z",
        "target1": 4892.4,
        "target2": 4910.202,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4880.27,
        "D_prior_index": 53,
        "H4_prior_index": 322,
        "H1_prior_index": 1232,
        "pre_local_low": 4853.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T16:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4861.085,
        "D_prior_index": 53,
        "H4_prior_index": 322,
        "H1_prior_index": 1233,
        "pre_local_high": 4880.27,
        "confirmation_time": "2026-03-18T16:25:00Z",
        "impulse_extreme": 4883.215,
        "fib50": 4872.15,
        "fib62": 4869.494,
        "entry_mid": 4870.822,
        "invalid": 4861.085,
        "risk_points": 9.737,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T18:45:00Z",
        "target1": 4880.559,
        "target2": 4890.297,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4873.49,
        "D_prior_index": 53,
        "H4_prior_index": 322,
        "H1_prior_index": 1233,
        "pre_local_high": 4883.215,
        "confirmation_time": "2026-03-18T16:50:00Z",
        "impulse_extreme": 4889.195,
        "fib50": 4881.342,
        "fib62": 4879.458,
        "entry_mid": 4880.4,
        "invalid": 4873.49,
        "risk_points": 6.91,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-18T18:05:00Z",
        "target1": 4887.31,
        "target2": 4894.221,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4899.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-18T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4899.46,
        "D_prior_index": 53,
        "H4_prior_index": 323,
        "H1_prior_index": 1235,
        "pre_local_low": 4873.49,
        "confirmation_time": "2026-03-18T18:45:00Z",
        "impulse_extreme": 4867.745,
        "fib50": 4883.602,
        "fib62": 4887.408,
        "entry_mid": 4885.505,
        "invalid": 4899.46,
        "risk_points": 13.955,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4876.725,
        "D_prior_index": 53,
        "H4_prior_index": 323,
        "H1_prior_index": 1235,
        "pre_local_high": 4899.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T18:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4872.59,
        "D_prior_index": 53,
        "H4_prior_index": 323,
        "H1_prior_index": 1235,
        "pre_local_high": 4899.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4843.655,
        "D_prior_index": 53,
        "H4_prior_index": 323,
        "H1_prior_index": 1236,
        "pre_local_high": 4899.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4865.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-18T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4806.845,
        "D_prior_index": 53,
        "H4_prior_index": 323,
        "H1_prior_index": 1237,
        "pre_local_high": 4870.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4815.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4831.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4828.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4841.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-18T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4842.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-18T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-18T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4829.76,
        "D_prior_index": 54,
        "H4_prior_index": 324,
        "H1_prior_index": 1239,
        "pre_local_high": 4842.39,
        "confirmation_time": "2026-03-19T00:00:00Z",
        "impulse_extreme": 4846.62,
        "fib50": 4838.19,
        "fib62": 4836.167,
        "entry_mid": 4837.178,
        "invalid": 4829.76,
        "risk_points": 7.418,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-19T00:10:00Z",
        "target1": 4844.597,
        "target2": 4852.015,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4848.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-19T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4838.03,
        "D_prior_index": 54,
        "H4_prior_index": 324,
        "H1_prior_index": 1240,
        "pre_local_high": 4848.87,
        "confirmation_time": "2026-03-19T01:35:00Z",
        "impulse_extreme": 4862.27,
        "fib50": 4850.15,
        "fib62": 4847.241,
        "entry_mid": 4848.696,
        "invalid": 4838.03,
        "risk_points": 10.666,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-19T01:55:00Z",
        "target1": 4859.361,
        "target2": 4870.027,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4832.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4853.645,
        "D_prior_index": 54,
        "H4_prior_index": 325,
        "H1_prior_index": 1241,
        "pre_local_low": 4829.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4841.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4853.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4862.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4866.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4847.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4853.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4845.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4827.045,
        "D_prior_index": 54,
        "H4_prior_index": 326,
        "H1_prior_index": 1246,
        "pre_local_high": 4853.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4842.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4757.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4721.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4722.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4726.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4719.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4666.81,
        "D_prior_index": 54,
        "H4_prior_index": 327,
        "H1_prior_index": 1250,
        "pre_local_high": 4726.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4676.5,
        "D_prior_index": 54,
        "H4_prior_index": 327,
        "H1_prior_index": 1251,
        "pre_local_high": 4721.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-19T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4695.545,
        "D_prior_index": 54,
        "H4_prior_index": 327,
        "H1_prior_index": 1251,
        "pre_local_low": 4666.81,
        "confirmation_time": "2026-03-19T11:40:00Z",
        "impulse_extreme": 4658.39,
        "fib50": 4676.968,
        "fib62": 4681.426,
        "entry_mid": 4679.197,
        "invalid": 4695.545,
        "risk_points": 16.348,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4531.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4583.335,
        "D_prior_index": 54,
        "H4_prior_index": 328,
        "H1_prior_index": 1253,
        "pre_local_low": 4502.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.755,
        "D_prior_index": 54,
        "H4_prior_index": 328,
        "H1_prior_index": 1253,
        "pre_local_high": 4640.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.345,
        "D_prior_index": 54,
        "H4_prior_index": 328,
        "H1_prior_index": 1254,
        "pre_local_high": 4649.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4593.53,
        "D_prior_index": 54,
        "H4_prior_index": 328,
        "H1_prior_index": 1255,
        "pre_local_high": 4649.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4639.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4566.19,
        "D_prior_index": 54,
        "H4_prior_index": 328,
        "H1_prior_index": 1255,
        "pre_local_high": 4649.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4611.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4576.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-19T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4573.915,
        "D_prior_index": 54,
        "H4_prior_index": 329,
        "H1_prior_index": 1257,
        "pre_local_high": 4626.865,
        "confirmation_time": "2026-03-19T19:00:00Z",
        "impulse_extreme": 4648.575,
        "fib50": 4611.245,
        "fib62": 4602.286,
        "entry_mid": 4606.765,
        "invalid": 4573.915,
        "risk_points": 32.85,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.97,
        "D_prior_index": 54,
        "H4_prior_index": 329,
        "H1_prior_index": 1257,
        "pre_local_low": 4573.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4601.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4596.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4632.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4631.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4650.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4660.89,
        "D_prior_index": 54,
        "H4_prior_index": 329,
        "H1_prior_index": 1260,
        "pre_local_low": 4596.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-19T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-19T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4677.205,
        "D_prior_index": 55,
        "H4_prior_index": 330,
        "H1_prior_index": 1261,
        "pre_local_low": 4631.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-19T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-19T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4648.355,
        "D_prior_index": 55,
        "H4_prior_index": 330,
        "H1_prior_index": 1262,
        "pre_local_low": 4636.27,
        "confirmation_time": "2026-03-19T23:40:00Z",
        "impulse_extreme": 4634.355,
        "fib50": 4641.355,
        "fib62": 4643.035,
        "entry_mid": 4642.195,
        "invalid": 4648.355,
        "risk_points": 6.16,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-19T23:45:00Z",
        "target1": 4636.035,
        "target2": 4629.875,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4642.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4665.1,
        "D_prior_index": 55,
        "H4_prior_index": 330,
        "H1_prior_index": 1263,
        "pre_local_low": 4634.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-20T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4639.42,
        "D_prior_index": 55,
        "H4_prior_index": 331,
        "H1_prior_index": 1264,
        "pre_local_high": 4669.82,
        "confirmation_time": "2026-03-20T01:30:00Z",
        "impulse_extreme": 4676.995,
        "fib50": 4658.208,
        "fib62": 4653.699,
        "entry_mid": 4655.953,
        "invalid": 4639.42,
        "risk_points": 16.533,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4699.53,
        "D_prior_index": 55,
        "H4_prior_index": 331,
        "H1_prior_index": 1264,
        "pre_local_low": 4639.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4670.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4690.43,
        "D_prior_index": 55,
        "H4_prior_index": 331,
        "H1_prior_index": 1265,
        "pre_local_low": 4639.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-20T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4679.29,
        "D_prior_index": 55,
        "H4_prior_index": 331,
        "H1_prior_index": 1265,
        "pre_local_high": 4699.53,
        "confirmation_time": "2026-03-20T02:45:00Z",
        "impulse_extreme": 4700.565,
        "fib50": 4689.927,
        "fib62": 4687.374,
        "entry_mid": 4688.651,
        "invalid": 4679.29,
        "risk_points": 9.361,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-20T05:55:00Z",
        "target1": 4698.012,
        "target2": 4707.373,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4691.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4736.175,
        "D_prior_index": 55,
        "H4_prior_index": 331,
        "H1_prior_index": 1266,
        "pre_local_low": 4670.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4710.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4650.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4646.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-20T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4670.135,
        "D_prior_index": 55,
        "H4_prior_index": 333,
        "H1_prior_index": 1273,
        "pre_local_low": 4646.02,
        "confirmation_time": "2026-03-20T10:55:00Z",
        "impulse_extreme": 4638.195,
        "fib50": 4654.165,
        "fib62": 4657.998,
        "entry_mid": 4656.081,
        "invalid": 4670.135,
        "risk_points": 14.054,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-20T11:00:00Z",
        "target1": 4642.028,
        "target2": 4627.974,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4637.245,
        "D_prior_index": 55,
        "H4_prior_index": 333,
        "H1_prior_index": 1274,
        "pre_local_high": 4693.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4657.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4636.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4548.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4540.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4614.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4568.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4600.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-20T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4577.4,
        "D_prior_index": 55,
        "H4_prior_index": 335,
        "H1_prior_index": 1280,
        "pre_local_low": 4554.785,
        "confirmation_time": "2026-03-20T18:20:00Z",
        "impulse_extreme": 4536.545,
        "fib50": 4556.972,
        "fib62": 4561.875,
        "entry_mid": 4559.424,
        "invalid": 4577.4,
        "risk_points": 17.976,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-20T18:25:00Z",
        "target1": 4541.448,
        "target2": 4523.471,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-20T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4578.685,
        "D_prior_index": 55,
        "H4_prior_index": 335,
        "H1_prior_index": 1281,
        "pre_local_low": 4554.785,
        "confirmation_time": "2026-03-20T18:20:00Z",
        "impulse_extreme": 4536.545,
        "fib50": 4557.615,
        "fib62": 4562.672,
        "entry_mid": 4560.143,
        "invalid": 4578.685,
        "risk_points": 18.542,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-20T18:25:00Z",
        "target1": 4541.602,
        "target2": 4523.06,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4485.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.66,
        "D_prior_index": 55,
        "H4_prior_index": 335,
        "H1_prior_index": 1283,
        "pre_local_high": 4568.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4514.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-20T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4496.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-20T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-20T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.865,
        "D_prior_index": 55,
        "H4_prior_index": 335,
        "H1_prior_index": 1283,
        "pre_local_high": 4517.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-22T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-22T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4471.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-22T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-22T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4485.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-22T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-22T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4472.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-22T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-22T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.77,
        "D_prior_index": 56,
        "H4_prior_index": 336,
        "H1_prior_index": 1285,
        "pre_local_low": 4459.545,
        "confirmation_time": "2026-03-22T23:50:00Z",
        "impulse_extreme": 4452.08,
        "fib50": 4472.925,
        "fib62": 4477.928,
        "entry_mid": 4475.426,
        "invalid": 4493.77,
        "risk_points": 18.344,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-23T00:00:00Z",
        "target1": 4457.083,
        "target2": 4438.739,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4404.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4319.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4454.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4347.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4360.32,
        "D_prior_index": 56,
        "H4_prior_index": 337,
        "H1_prior_index": 1290,
        "pre_local_high": 4380.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4349.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4380.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.07,
        "D_prior_index": 56,
        "H4_prior_index": 338,
        "H1_prior_index": 1292,
        "pre_local_high": 4379.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4099.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4232.57,
        "D_prior_index": 56,
        "H4_prior_index": 338,
        "H1_prior_index": 1293,
        "pre_local_low": 4099.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4256.26,
        "D_prior_index": 56,
        "H4_prior_index": 338,
        "H1_prior_index": 1294,
        "pre_local_low": 4099.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4219.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T09:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4308.625,
        "D_prior_index": 56,
        "H4_prior_index": 339,
        "H1_prior_index": 1295,
        "pre_local_low": 4186.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-23T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4223.685,
        "D_prior_index": 56,
        "H4_prior_index": 339,
        "H1_prior_index": 1295,
        "pre_local_high": 4308.625,
        "confirmation_time": "2026-03-23T11:05:00Z",
        "impulse_extreme": 4421.29,
        "fib50": 4322.488,
        "fib62": 4298.775,
        "entry_mid": 4310.631,
        "invalid": 4223.685,
        "risk_points": 86.946,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4274.785,
        "D_prior_index": 56,
        "H4_prior_index": 339,
        "H1_prior_index": 1296,
        "pre_local_low": 4219.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4241.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4281.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4431.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-23T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4401.76,
        "D_prior_index": 56,
        "H4_prior_index": 340,
        "H1_prior_index": 1299,
        "pre_local_high": 4492.925,
        "confirmation_time": "2026-03-23T14:20:00Z",
        "impulse_extreme": 4504.775,
        "fib50": 4453.267,
        "fib62": 4440.906,
        "entry_mid": 4447.087,
        "invalid": 4401.76,
        "risk_points": 45.327,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-23T15:15:00Z",
        "target1": 4492.413,
        "target2": 4537.74,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4455.085,
        "D_prior_index": 56,
        "H4_prior_index": 340,
        "H1_prior_index": 1301,
        "pre_local_high": 4513.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-23T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4487.385,
        "D_prior_index": 56,
        "H4_prior_index": 340,
        "H1_prior_index": 1301,
        "pre_local_low": 4401.76,
        "confirmation_time": "2026-03-23T15:50:00Z",
        "impulse_extreme": 4384.7,
        "fib50": 4436.042,
        "fib62": 4448.365,
        "entry_mid": 4442.204,
        "invalid": 4487.385,
        "risk_points": 45.181,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-23T17:35:00Z",
        "target1": 4397.022,
        "target2": 4351.841,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4352.31,
        "D_prior_index": 56,
        "H4_prior_index": 340,
        "H1_prior_index": 1302,
        "pre_local_high": 4501.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4391.925,
        "D_prior_index": 56,
        "H4_prior_index": 340,
        "H1_prior_index": 1302,
        "pre_local_low": 4350.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4370.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4413.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-23T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4402.185,
        "D_prior_index": 56,
        "H4_prior_index": 341,
        "H1_prior_index": 1304,
        "pre_local_high": 4439.245,
        "confirmation_time": "2026-03-23T18:30:00Z",
        "impulse_extreme": 4444.83,
        "fib50": 4423.507,
        "fib62": 4418.39,
        "entry_mid": 4420.949,
        "invalid": 4402.185,
        "risk_points": 18.764,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-23T19:10:00Z",
        "target1": 4439.713,
        "target2": 4458.476,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4430.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-23T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4392.99,
        "D_prior_index": 56,
        "H4_prior_index": 341,
        "H1_prior_index": 1305,
        "pre_local_high": 4467.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4427.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4382.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-23T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4413.34,
        "D_prior_index": 56,
        "H4_prior_index": 341,
        "H1_prior_index": 1306,
        "pre_local_low": 4382.855,
        "confirmation_time": "2026-03-23T22:00:00Z",
        "impulse_extreme": 4381.285,
        "fib50": 4397.312,
        "fib62": 4401.159,
        "entry_mid": 4399.236,
        "invalid": 4413.34,
        "risk_points": 14.104,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-23T22:10:00Z",
        "target1": 4385.132,
        "target2": 4371.027,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4395.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4412.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-23T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4417.16,
        "D_prior_index": 57,
        "H4_prior_index": 342,
        "H1_prior_index": 1307,
        "pre_local_low": 4359.74,
        "confirmation_time": "2026-03-24T00:35:00Z",
        "impulse_extreme": 4335.485,
        "fib50": 4376.323,
        "fib62": 4386.123,
        "entry_mid": 4381.223,
        "invalid": 4417.16,
        "risk_points": 35.937,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T00:50:00Z",
        "target1": 4345.286,
        "target2": 4309.349,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-23T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-23T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4446.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-24T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4446.785,
        "D_prior_index": 57,
        "H4_prior_index": 342,
        "H1_prior_index": 1309,
        "pre_local_low": 4396.23,
        "confirmation_time": "2026-03-24T00:25:00Z",
        "impulse_extreme": 4368.375,
        "fib50": 4407.58,
        "fib62": 4416.989,
        "entry_mid": 4412.285,
        "invalid": 4446.785,
        "risk_points": 34.5,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4307.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4305.88,
        "D_prior_index": 57,
        "H4_prior_index": 343,
        "H1_prior_index": 1311,
        "pre_local_high": 4412.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4337.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4379.465,
        "D_prior_index": 57,
        "H4_prior_index": 343,
        "H1_prior_index": 1311,
        "pre_local_low": 4305.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4350.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4368.22,
        "D_prior_index": 57,
        "H4_prior_index": 343,
        "H1_prior_index": 1312,
        "pre_local_low": 4305.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-24T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.2,
        "D_prior_index": 57,
        "H4_prior_index": 343,
        "H1_prior_index": 1312,
        "pre_local_high": 4379.465,
        "confirmation_time": "2026-03-24T06:20:00Z",
        "impulse_extreme": 4391.525,
        "fib50": 4363.362,
        "fib62": 4356.604,
        "entry_mid": 4359.983,
        "invalid": 4335.2,
        "risk_points": 24.783,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4349.58,
        "D_prior_index": 57,
        "H4_prior_index": 343,
        "H1_prior_index": 1313,
        "pre_local_low": 4326.615,
        "confirmation_time": "2026-03-24T05:05:00Z",
        "impulse_extreme": 4320.04,
        "fib50": 4334.81,
        "fib62": 4338.355,
        "entry_mid": 4336.582,
        "invalid": 4349.58,
        "risk_points": 12.998,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T05:10:00Z",
        "target1": 4323.585,
        "target2": 4310.587,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4346.735,
        "D_prior_index": 57,
        "H4_prior_index": 344,
        "H1_prior_index": 1314,
        "pre_local_low": 4320.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-24T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4343.23,
        "D_prior_index": 57,
        "H4_prior_index": 344,
        "H1_prior_index": 1315,
        "pre_local_high": 4374.06,
        "confirmation_time": "2026-03-24T06:20:00Z",
        "impulse_extreme": 4391.525,
        "fib50": 4367.377,
        "fib62": 4361.582,
        "entry_mid": 4364.48,
        "invalid": 4343.23,
        "risk_points": 21.25,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4375.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4397.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4373.035,
        "D_prior_index": 57,
        "H4_prior_index": 344,
        "H1_prior_index": 1315,
        "pre_local_high": 4397.13,
        "confirmation_time": "2026-03-24T06:55:00Z",
        "impulse_extreme": 4405.26,
        "fib50": 4389.148,
        "fib62": 4385.28,
        "entry_mid": 4387.214,
        "invalid": 4373.035,
        "risk_points": 14.179,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T11:00:00Z",
        "target1": 4401.393,
        "target2": 4415.572,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4399.775,
        "D_prior_index": 57,
        "H4_prior_index": 344,
        "H1_prior_index": 1316,
        "pre_local_high": 4425.455,
        "confirmation_time": "2026-03-24T09:55:00Z",
        "impulse_extreme": 4430.995,
        "fib50": 4415.385,
        "fib62": 4411.639,
        "entry_mid": 4413.512,
        "invalid": 4399.775,
        "risk_points": 13.737,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T10:00:00Z",
        "target1": 4427.249,
        "target2": 4440.985,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4397.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4419.255,
        "D_prior_index": 57,
        "H4_prior_index": 345,
        "H1_prior_index": 1318,
        "pre_local_low": 4391.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-24T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4395.97,
        "D_prior_index": 57,
        "H4_prior_index": 345,
        "H1_prior_index": 1318,
        "pre_local_high": 4433.31,
        "confirmation_time": "2026-03-24T10:55:00Z",
        "impulse_extreme": 4441.73,
        "fib50": 4418.85,
        "fib62": 4413.359,
        "entry_mid": 4416.104,
        "invalid": 4395.97,
        "risk_points": 20.134,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4431.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4432.995,
        "D_prior_index": 57,
        "H4_prior_index": 345,
        "H1_prior_index": 1319,
        "pre_local_low": 4395.97,
        "confirmation_time": "2026-03-24T12:30:00Z",
        "impulse_extreme": 4374.09,
        "fib50": 4403.542,
        "fib62": 4410.611,
        "entry_mid": 4407.077,
        "invalid": 4432.995,
        "risk_points": 25.918,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T14:10:00Z",
        "target1": 4381.159,
        "target2": 4355.24,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4414.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4374.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4442.245,
        "D_prior_index": 57,
        "H4_prior_index": 345,
        "H1_prior_index": 1320,
        "pre_local_low": 4374.74,
        "confirmation_time": "2026-03-24T12:35:00Z",
        "impulse_extreme": 4363.245,
        "fib50": 4402.745,
        "fib62": 4412.225,
        "entry_mid": 4407.485,
        "invalid": 4442.245,
        "risk_points": 34.76,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T14:10:00Z",
        "target1": 4372.725,
        "target2": 4337.965,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T12:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4427.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4364.09,
        "D_prior_index": 57,
        "H4_prior_index": 346,
        "H1_prior_index": 1322,
        "pre_local_high": 4431.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4351.09,
        "D_prior_index": 57,
        "H4_prior_index": 346,
        "H1_prior_index": 1322,
        "pre_local_high": 4427.645,
        "confirmation_time": "2026-03-24T15:45:00Z",
        "impulse_extreme": 4431.085,
        "fib50": 4391.087,
        "fib62": 4381.488,
        "entry_mid": 4386.288,
        "invalid": 4351.09,
        "risk_points": 35.198,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T17:05:00Z",
        "target1": 4421.486,
        "target2": 4456.683,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4421.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4434.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4396.455,
        "D_prior_index": 57,
        "H4_prior_index": 346,
        "H1_prior_index": 1324,
        "pre_local_high": 4434.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-24T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4409.21,
        "D_prior_index": 57,
        "H4_prior_index": 346,
        "H1_prior_index": 1324,
        "pre_local_high": 4434.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4431.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4402.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4408.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-24T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4427.925,
        "D_prior_index": 57,
        "H4_prior_index": 346,
        "H1_prior_index": 1325,
        "pre_local_low": 4396.455,
        "confirmation_time": "2026-03-24T17:05:00Z",
        "impulse_extreme": 4390.645,
        "fib50": 4409.285,
        "fib62": 4413.759,
        "entry_mid": 4411.522,
        "invalid": 4427.925,
        "risk_points": 16.403,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-24T18:25:00Z",
        "target1": 4395.119,
        "target2": 4378.715,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-24T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4372.655,
        "D_prior_index": 57,
        "H4_prior_index": 347,
        "H1_prior_index": 1326,
        "pre_local_high": 4427.925,
        "confirmation_time": "2026-03-24T20:20:00Z",
        "impulse_extreme": 4466.845,
        "fib50": 4419.75,
        "fib62": 4408.447,
        "entry_mid": 4414.099,
        "invalid": 4372.655,
        "risk_points": 41.444,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4423.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4395.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-24T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-24T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4555.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4557.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4572.18,
        "D_prior_index": 58,
        "H4_prior_index": 348,
        "H1_prior_index": 1332,
        "pre_local_low": 4474.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.375,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1333,
        "pre_local_high": 4572.18,
        "confirmation_time": "2026-03-25T01:05:00Z",
        "impulse_extreme": 4576.86,
        "fib50": 4564.618,
        "fib62": 4561.679,
        "entry_mid": 4563.148,
        "invalid": 4552.375,
        "risk_points": 10.773,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T05:15:00Z",
        "target1": 4573.922,
        "target2": 4584.695,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4578.94,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1333,
        "pre_local_low": 4496.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4579.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.155,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1334,
        "pre_local_high": 4601.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4602.645,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1334,
        "pre_local_low": 4563.455,
        "confirmation_time": "2026-03-25T05:20:00Z",
        "impulse_extreme": 4560.695,
        "fib50": 4581.67,
        "fib62": 4586.704,
        "entry_mid": 4584.187,
        "invalid": 4602.645,
        "risk_points": 18.458,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T11:20:00Z",
        "target1": 4565.729,
        "target2": 4547.271,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4571.915,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1335,
        "pre_local_high": 4602.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4567.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4565.59,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1336,
        "pre_local_high": 4602.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4574.59,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1336,
        "pre_local_low": 4565.59,
        "confirmation_time": "2026-03-25T05:15:00Z",
        "impulse_extreme": 4563.875,
        "fib50": 4569.233,
        "fib62": 4570.518,
        "entry_mid": 4569.875,
        "invalid": 4574.59,
        "risk_points": 4.715,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T11:05:00Z",
        "target1": 4565.161,
        "target2": 4560.446,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-25T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4574.985,
        "D_prior_index": 58,
        "H4_prior_index": 349,
        "H1_prior_index": 1336,
        "pre_local_low": 4565.59,
        "confirmation_time": "2026-03-25T05:15:00Z",
        "impulse_extreme": 4563.875,
        "fib50": 4569.43,
        "fib62": 4570.763,
        "entry_mid": 4570.097,
        "invalid": 4574.985,
        "risk_points": 4.888,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4566.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4549.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T05:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4567.295,
        "D_prior_index": 58,
        "H4_prior_index": 350,
        "H1_prior_index": 1337,
        "pre_local_low": 4549.225,
        "confirmation_time": "2026-03-25T06:05:00Z",
        "impulse_extreme": 4539.28,
        "fib50": 4553.288,
        "fib62": 4556.649,
        "entry_mid": 4554.968,
        "invalid": 4567.295,
        "risk_points": 12.327,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T06:30:00Z",
        "target1": 4542.642,
        "target2": 4530.315,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4556.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.25,
        "D_prior_index": 58,
        "H4_prior_index": 350,
        "H1_prior_index": 1338,
        "pre_local_high": 4573.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T08:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.05,
        "D_prior_index": 58,
        "H4_prior_index": 350,
        "H1_prior_index": 1340,
        "pre_local_high": 4563.34,
        "confirmation_time": "2026-03-25T08:15:00Z",
        "impulse_extreme": 4564.69,
        "fib50": 4550.37,
        "fib62": 4546.933,
        "entry_mid": 4548.652,
        "invalid": 4536.05,
        "risk_points": 12.602,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T09:40:00Z",
        "target1": 4561.253,
        "target2": 4573.855,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4553.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.52,
        "D_prior_index": 58,
        "H4_prior_index": 351,
        "H1_prior_index": 1341,
        "pre_local_high": 4568.235,
        "confirmation_time": "2026-03-25T11:20:00Z",
        "impulse_extreme": 4583.06,
        "fib50": 4568.79,
        "fib62": 4565.365,
        "entry_mid": 4567.078,
        "invalid": 4554.52,
        "risk_points": 12.558,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T12:15:00Z",
        "target1": 4579.635,
        "target2": 4592.193,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4567.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4527.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-25T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4551.39,
        "D_prior_index": 58,
        "H4_prior_index": 351,
        "H1_prior_index": 1342,
        "pre_local_high": 4567.77,
        "confirmation_time": "2026-03-25T11:05:00Z",
        "impulse_extreme": 4569.28,
        "fib50": 4560.335,
        "fib62": 4558.188,
        "entry_mid": 4559.262,
        "invalid": 4551.39,
        "risk_points": 7.872,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-25T12:20:00Z",
        "target1": 4567.133,
        "target2": 4575.005,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4559.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4562.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4521.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4576.755,
        "D_prior_index": 58,
        "H4_prior_index": 352,
        "H1_prior_index": 1345,
        "pre_local_low": 4521.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4533.22,
        "D_prior_index": 58,
        "H4_prior_index": 352,
        "H1_prior_index": 1346,
        "pre_local_high": 4576.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4579.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4525.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4565.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.555,
        "D_prior_index": 58,
        "H4_prior_index": 352,
        "H1_prior_index": 1347,
        "pre_local_high": 4579.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4566.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4552.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4545.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4550.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4543.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4542.96,
        "D_prior_index": 58,
        "H4_prior_index": 353,
        "H1_prior_index": 1349,
        "pre_local_high": 4566.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4558.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T17:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4545.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-25T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.51,
        "D_prior_index": 58,
        "H4_prior_index": 353,
        "H1_prior_index": 1350,
        "pre_local_high": 4569.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-25T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4569.025,
        "D_prior_index": 58,
        "H4_prior_index": 353,
        "H1_prior_index": 1350,
        "pre_local_low": 4542.96,
        "confirmation_time": "2026-03-25T18:50:00Z",
        "impulse_extreme": 4538.97,
        "fib50": 4553.997,
        "fib62": 4557.604,
        "entry_mid": 4555.801,
        "invalid": 4569.025,
        "risk_points": 13.224,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-25T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.725,
        "D_prior_index": 58,
        "H4_prior_index": 353,
        "H1_prior_index": 1350,
        "pre_local_low": 4542.96,
        "confirmation_time": "2026-03-25T18:50:00Z",
        "impulse_extreme": 4538.97,
        "fib50": 4548.347,
        "fib62": 4550.598,
        "entry_mid": 4549.473,
        "invalid": 4557.725,
        "risk_points": 8.252,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4542.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4522.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4505.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-25T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-25T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4496.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.025,
        "D_prior_index": 59,
        "H4_prior_index": 354,
        "H1_prior_index": 1355,
        "pre_local_low": 4489.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4544.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4527.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4526.27,
        "D_prior_index": 59,
        "H4_prior_index": 355,
        "H1_prior_index": 1356,
        "pre_local_high": 4544.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4522.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.21,
        "D_prior_index": 59,
        "H4_prior_index": 355,
        "H1_prior_index": 1357,
        "pre_local_low": 4522.525,
        "confirmation_time": "2026-03-26T02:35:00Z",
        "impulse_extreme": 4511.605,
        "fib50": 4523.907,
        "fib62": 4526.86,
        "entry_mid": 4525.384,
        "invalid": 4536.21,
        "risk_points": 10.826,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T04:45:00Z",
        "target1": 4514.558,
        "target2": 4503.731,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4524.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4500.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4514.18,
        "D_prior_index": 59,
        "H4_prior_index": 355,
        "H1_prior_index": 1358,
        "pre_local_low": 4502.035,
        "confirmation_time": "2026-03-26T05:25:00Z",
        "impulse_extreme": 4489.21,
        "fib50": 4501.695,
        "fib62": 4504.691,
        "entry_mid": 4503.193,
        "invalid": 4514.18,
        "risk_points": 10.987,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4522.46,
        "D_prior_index": 59,
        "H4_prior_index": 355,
        "H1_prior_index": 1359,
        "pre_local_low": 4500.055,
        "confirmation_time": "2026-03-26T05:25:00Z",
        "impulse_extreme": 4489.21,
        "fib50": 4505.835,
        "fib62": 4509.825,
        "entry_mid": 4507.83,
        "invalid": 4522.46,
        "risk_points": 14.63,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4524.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4415.87,
        "D_prior_index": 59,
        "H4_prior_index": 356,
        "H1_prior_index": 1361,
        "pre_local_high": 4524.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4442.945,
        "D_prior_index": 59,
        "H4_prior_index": 356,
        "H1_prior_index": 1362,
        "pre_local_high": 4511.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4460.835,
        "D_prior_index": 59,
        "H4_prior_index": 356,
        "H1_prior_index": 1362,
        "pre_local_low": 4415.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4440.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4418.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4429.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4423.62,
        "D_prior_index": 59,
        "H4_prior_index": 357,
        "H1_prior_index": 1365,
        "pre_local_high": 4448.435,
        "confirmation_time": "2026-03-26T11:35:00Z",
        "impulse_extreme": 4449.745,
        "fib50": 4436.682,
        "fib62": 4433.547,
        "entry_mid": 4435.115,
        "invalid": 4423.62,
        "risk_points": 11.495,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T11:45:00Z",
        "target1": 4446.61,
        "target2": 4458.105,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4447.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.77,
        "D_prior_index": 59,
        "H4_prior_index": 357,
        "H1_prior_index": 1366,
        "pre_local_low": 4414.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4439.585,
        "D_prior_index": 59,
        "H4_prior_index": 357,
        "H1_prior_index": 1366,
        "pre_local_high": 4449.125,
        "confirmation_time": "2026-03-26T11:35:00Z",
        "impulse_extreme": 4449.745,
        "fib50": 4444.665,
        "fib62": 4443.446,
        "entry_mid": 4444.055,
        "invalid": 4439.585,
        "risk_points": 4.47,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4456.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4438.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4416.775,
        "D_prior_index": 59,
        "H4_prior_index": 357,
        "H1_prior_index": 1367,
        "pre_local_high": 4456.865,
        "confirmation_time": "2026-03-26T14:20:00Z",
        "impulse_extreme": 4469.82,
        "fib50": 4443.297,
        "fib62": 4436.932,
        "entry_mid": 4440.115,
        "invalid": 4416.775,
        "risk_points": 23.34,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T15:30:00Z",
        "target1": 4463.455,
        "target2": 4486.794,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4446.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4431.95,
        "D_prior_index": 59,
        "H4_prior_index": 357,
        "H1_prior_index": 1367,
        "pre_local_high": 4456.865,
        "confirmation_time": "2026-03-26T14:20:00Z",
        "impulse_extreme": 4469.82,
        "fib50": 4450.885,
        "fib62": 4446.341,
        "entry_mid": 4448.613,
        "invalid": 4431.95,
        "risk_points": 16.663,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T14:50:00Z",
        "target1": 4465.276,
        "target2": 4481.938,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4420.24,
        "D_prior_index": 59,
        "H4_prior_index": 358,
        "H1_prior_index": 1368,
        "pre_local_high": 4456.865,
        "confirmation_time": "2026-03-26T14:20:00Z",
        "impulse_extreme": 4469.82,
        "fib50": 4445.03,
        "fib62": 4439.08,
        "entry_mid": 4442.055,
        "invalid": 4420.24,
        "risk_points": 21.815,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T15:30:00Z",
        "target1": 4463.87,
        "target2": 4485.686,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4445.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4429.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.035,
        "D_prior_index": 59,
        "H4_prior_index": 358,
        "H1_prior_index": 1368,
        "pre_local_low": 4420.24,
        "confirmation_time": "2026-03-26T16:20:00Z",
        "impulse_extreme": 4390.325,
        "fib50": 4425.68,
        "fib62": 4434.165,
        "entry_mid": 4429.923,
        "invalid": 4461.035,
        "risk_points": 31.112,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4445.915,
        "D_prior_index": 59,
        "H4_prior_index": 358,
        "H1_prior_index": 1369,
        "pre_local_high": 4479.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.875,
        "D_prior_index": 59,
        "H4_prior_index": 358,
        "H1_prior_index": 1370,
        "pre_local_high": 4479.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4434.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4426.07,
        "D_prior_index": 59,
        "H4_prior_index": 358,
        "H1_prior_index": 1371,
        "pre_local_high": 4479.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4398.045,
        "D_prior_index": 59,
        "H4_prior_index": 359,
        "H1_prior_index": 1373,
        "pre_local_low": 4367.83,
        "confirmation_time": "2026-03-26T19:50:00Z",
        "impulse_extreme": 4363.935,
        "fib50": 4380.99,
        "fib62": 4385.083,
        "entry_mid": 4383.037,
        "invalid": 4398.045,
        "risk_points": 15.008,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-26T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4399.45,
        "D_prior_index": 59,
        "H4_prior_index": 359,
        "H1_prior_index": 1374,
        "pre_local_low": 4367.83,
        "confirmation_time": "2026-03-26T19:50:00Z",
        "impulse_extreme": 4363.935,
        "fib50": 4381.693,
        "fib62": 4385.954,
        "entry_mid": 4383.823,
        "invalid": 4399.45,
        "risk_points": 15.627,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-26T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4375.3,
        "D_prior_index": 59,
        "H4_prior_index": 359,
        "H1_prior_index": 1374,
        "pre_local_high": 4399.45,
        "confirmation_time": "2026-03-26T20:20:00Z",
        "impulse_extreme": 4416.31,
        "fib50": 4395.805,
        "fib62": 4390.884,
        "entry_mid": 4393.344,
        "invalid": 4375.3,
        "risk_points": 18.044,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-26T20:25:00Z",
        "target1": 4411.389,
        "target2": 4429.433,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T20:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4351.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4416.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4420.75,
        "D_prior_index": 59,
        "H4_prior_index": 359,
        "H1_prior_index": 1375,
        "pre_local_low": 4351.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4408.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4415.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-26T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4414.44,
        "D_prior_index": 60,
        "H4_prior_index": 360,
        "H1_prior_index": 1377,
        "pre_local_low": 4373.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-26T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-26T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4408.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4411.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4420.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-27T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4424.92,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1380,
        "pre_local_high": 4439.73,
        "confirmation_time": "2026-03-27T03:35:00Z",
        "impulse_extreme": 4444.42,
        "fib50": 4434.67,
        "fib62": 4432.33,
        "entry_mid": 4433.5,
        "invalid": 4424.92,
        "risk_points": 8.58,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-27T03:45:00Z",
        "target1": 4442.08,
        "target2": 4450.66,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4440.6,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1380,
        "pre_local_low": 4387.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4421.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4436.88,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1381,
        "pre_local_low": 4410.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4446.33,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1381,
        "pre_local_low": 4412.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-27T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4432.68,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1382,
        "pre_local_high": 4446.33,
        "confirmation_time": "2026-03-27T05:30:00Z",
        "impulse_extreme": 4460.35,
        "fib50": 4446.515,
        "fib62": 4443.195,
        "entry_mid": 4444.855,
        "invalid": 4432.68,
        "risk_points": 12.175,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-27T07:50:00Z",
        "target1": 4457.03,
        "target2": 4469.204,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4439.875,
        "D_prior_index": 60,
        "H4_prior_index": 361,
        "H1_prior_index": 1382,
        "pre_local_low": 4421.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4431.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4440.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4451.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4447.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4442.7,
        "D_prior_index": 60,
        "H4_prior_index": 362,
        "H1_prior_index": 1386,
        "pre_local_high": 4468.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4428.83,
        "D_prior_index": 60,
        "H4_prior_index": 362,
        "H1_prior_index": 1386,
        "pre_local_high": 4464.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4420.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-27T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4438.58,
        "D_prior_index": 60,
        "H4_prior_index": 363,
        "H1_prior_index": 1387,
        "pre_local_low": 4420.885,
        "confirmation_time": "2026-03-27T10:40:00Z",
        "impulse_extreme": 4412.49,
        "fib50": 4425.535,
        "fib62": 4428.666,
        "entry_mid": 4427.1,
        "invalid": 4438.58,
        "risk_points": 11.48,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-27T11:50:00Z",
        "target1": 4415.621,
        "target2": 4404.141,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-27T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4433.14,
        "D_prior_index": 60,
        "H4_prior_index": 363,
        "H1_prior_index": 1388,
        "pre_local_low": 4420.885,
        "confirmation_time": "2026-03-27T10:40:00Z",
        "impulse_extreme": 4412.49,
        "fib50": 4422.815,
        "fib62": 4425.293,
        "entry_mid": 4424.054,
        "invalid": 4433.14,
        "risk_points": 9.086,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-27T11:45:00Z",
        "target1": 4414.968,
        "target2": 4405.882,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4424.0,
        "D_prior_index": 60,
        "H4_prior_index": 363,
        "H1_prior_index": 1388,
        "pre_local_high": 4440.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-27T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4410.56,
        "D_prior_index": 60,
        "H4_prior_index": 363,
        "H1_prior_index": 1388,
        "pre_local_high": 4438.58,
        "confirmation_time": "2026-03-27T12:45:00Z",
        "impulse_extreme": 4439.77,
        "fib50": 4425.165,
        "fib62": 4421.66,
        "entry_mid": 4423.412,
        "invalid": 4410.56,
        "risk_points": 12.852,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-27T13:10:00Z",
        "target1": 4436.265,
        "target2": 4449.117,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4404.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4426.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4412.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4427.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4437.56,
        "D_prior_index": 60,
        "H4_prior_index": 363,
        "H1_prior_index": 1390,
        "pre_local_low": 4404.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4413.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4470.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-27T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4451.915,
        "D_prior_index": 60,
        "H4_prior_index": 364,
        "H1_prior_index": 1392,
        "pre_local_high": 4470.045,
        "confirmation_time": "2026-03-27T14:45:00Z",
        "impulse_extreme": 4476.51,
        "fib50": 4464.212,
        "fib62": 4461.261,
        "entry_mid": 4462.737,
        "invalid": 4451.915,
        "risk_points": 10.822,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.265,
        "D_prior_index": 60,
        "H4_prior_index": 364,
        "H1_prior_index": 1394,
        "pre_local_high": 4555.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4533.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4522.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4500.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4526.315,
        "D_prior_index": 60,
        "H4_prior_index": 365,
        "H1_prior_index": 1397,
        "pre_local_low": 4486.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-27T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4504.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-27T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.695,
        "D_prior_index": 60,
        "H4_prior_index": 365,
        "H1_prior_index": 1398,
        "pre_local_high": 4526.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-27T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-27T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4512.93,
        "D_prior_index": 60,
        "H4_prior_index": 365,
        "H1_prior_index": 1398,
        "pre_local_low": 4500.76,
        "confirmation_time": "2026-03-27T20:45:00Z",
        "impulse_extreme": 4497.585,
        "fib50": 4505.257,
        "fib62": 4507.099,
        "entry_mid": 4506.178,
        "invalid": 4512.93,
        "risk_points": 6.752,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-29T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-29T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4481.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-29T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-29T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4513.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-29T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-29T22:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4490.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-29T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-29T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4513.28,
        "D_prior_index": 61,
        "H4_prior_index": 366,
        "H1_prior_index": 1399,
        "pre_local_low": 4481.21,
        "confirmation_time": "2026-03-29T23:05:00Z",
        "impulse_extreme": 4464.575,
        "fib50": 4488.927,
        "fib62": 4494.772,
        "entry_mid": 4491.85,
        "invalid": 4513.28,
        "risk_points": 21.43,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T02:40:00Z",
        "target1": 4470.42,
        "target2": 4448.989,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-29T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-29T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4466.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T02:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.175,
        "D_prior_index": 61,
        "H4_prior_index": 367,
        "H1_prior_index": 1404,
        "pre_local_low": 4458.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4516.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-30T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4503.395,
        "D_prior_index": 61,
        "H4_prior_index": 368,
        "H1_prior_index": 1406,
        "pre_local_high": 4516.15,
        "confirmation_time": "2026-03-30T05:45:00Z",
        "impulse_extreme": 4521.515,
        "fib50": 4512.455,
        "fib62": 4510.281,
        "entry_mid": 4511.368,
        "invalid": 4503.395,
        "risk_points": 7.973,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.665,
        "D_prior_index": 61,
        "H4_prior_index": 368,
        "H1_prior_index": 1407,
        "pre_local_low": 4486.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-30T06:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4526.35,
        "D_prior_index": 61,
        "H4_prior_index": 368,
        "H1_prior_index": 1407,
        "pre_local_high": 4536.655,
        "confirmation_time": "2026-03-30T06:35:00Z",
        "impulse_extreme": 4541.67,
        "fib50": 4534.01,
        "fib62": 4532.172,
        "entry_mid": 4533.091,
        "invalid": 4526.35,
        "risk_points": 6.741,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T06:55:00Z",
        "target1": 4539.832,
        "target2": 4546.572,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4550.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4523.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T07:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.2,
        "D_prior_index": 61,
        "H4_prior_index": 368,
        "H1_prior_index": 1408,
        "pre_local_low": 4504.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4515.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4538.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.58,
        "D_prior_index": 61,
        "H4_prior_index": 368,
        "H1_prior_index": 1409,
        "pre_local_low": 4515.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.895,
        "D_prior_index": 61,
        "H4_prior_index": 369,
        "H1_prior_index": 1410,
        "pre_local_low": 4515.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.84,
        "D_prior_index": 61,
        "H4_prior_index": 369,
        "H1_prior_index": 1410,
        "pre_local_low": 4523.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-30T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4527.785,
        "D_prior_index": 61,
        "H4_prior_index": 369,
        "H1_prior_index": 1411,
        "pre_local_high": 4540.895,
        "confirmation_time": "2026-03-30T11:15:00Z",
        "impulse_extreme": 4545.585,
        "fib50": 4536.685,
        "fib62": 4534.549,
        "entry_mid": 4535.617,
        "invalid": 4527.785,
        "risk_points": 7.832,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T11:20:00Z",
        "target1": 4543.449,
        "target2": 4551.281,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4540.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.935,
        "D_prior_index": 61,
        "H4_prior_index": 369,
        "H1_prior_index": 1411,
        "pre_local_low": 4523.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4525.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4580.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4545.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4563.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-30T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4578.835,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1414,
        "pre_local_low": 4535.155,
        "confirmation_time": "2026-03-30T13:45:00Z",
        "impulse_extreme": 4531.75,
        "fib50": 4555.292,
        "fib62": 4560.943,
        "entry_mid": 4558.118,
        "invalid": 4578.835,
        "risk_points": 20.717,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T15:45:00Z",
        "target1": 4537.4,
        "target2": 4516.683,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4559.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-30T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4574.03,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1414,
        "pre_local_low": 4545.33,
        "confirmation_time": "2026-03-30T13:40:00Z",
        "impulse_extreme": 4543.165,
        "fib50": 4558.597,
        "fib62": 4562.301,
        "entry_mid": 4560.449,
        "invalid": 4574.03,
        "risk_points": 13.581,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T14:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4512.57,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1415,
        "pre_local_high": 4578.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.505,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1416,
        "pre_local_low": 4512.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.895,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1416,
        "pre_local_low": 4512.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4532.415,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1417,
        "pre_local_high": 4556.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-30T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4548.97,
        "D_prior_index": 61,
        "H4_prior_index": 370,
        "H1_prior_index": 1417,
        "pre_local_low": 4524.7,
        "confirmation_time": "2026-03-30T17:10:00Z",
        "impulse_extreme": 4519.65,
        "fib50": 4534.31,
        "fib62": 4537.828,
        "entry_mid": 4536.069,
        "invalid": 4548.97,
        "risk_points": 12.901,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4514.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4511.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-30T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.635,
        "D_prior_index": 61,
        "H4_prior_index": 371,
        "H1_prior_index": 1418,
        "pre_local_low": 4514.91,
        "confirmation_time": "2026-03-30T18:25:00Z",
        "impulse_extreme": 4511.695,
        "fib50": 4520.165,
        "fib62": 4522.198,
        "entry_mid": 4521.181,
        "invalid": 4528.635,
        "risk_points": 7.454,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T23:50:00Z",
        "target1": 4513.728,
        "target2": 4506.274,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4511.695,
        "D_prior_index": 61,
        "H4_prior_index": 371,
        "H1_prior_index": 1419,
        "pre_local_high": 4548.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4493.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4501.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4518.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-30T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-30T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4519.14,
        "D_prior_index": 62,
        "H4_prior_index": 372,
        "H1_prior_index": 1422,
        "pre_local_low": 4501.27,
        "confirmation_time": "2026-03-30T23:05:00Z",
        "impulse_extreme": 4495.12,
        "fib50": 4507.13,
        "fib62": 4510.012,
        "entry_mid": 4508.571,
        "invalid": 4519.14,
        "risk_points": 10.569,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-30T23:15:00Z",
        "target1": 4498.002,
        "target2": 4487.434,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-30T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-30T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4521.915,
        "D_prior_index": 62,
        "H4_prior_index": 372,
        "H1_prior_index": 1423,
        "pre_local_low": 4492.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4528.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4482.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4532.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.865,
        "D_prior_index": 62,
        "H4_prior_index": 373,
        "H1_prior_index": 1425,
        "pre_local_low": 4482.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4619.255,
        "D_prior_index": 62,
        "H4_prior_index": 373,
        "H1_prior_index": 1425,
        "pre_local_low": 4482.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.455,
        "D_prior_index": 62,
        "H4_prior_index": 373,
        "H1_prior_index": 1427,
        "pre_local_high": 4600.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4566.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.955,
        "D_prior_index": 62,
        "H4_prior_index": 373,
        "H1_prior_index": 1428,
        "pre_local_high": 4588.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4569.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-31T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4569.39,
        "D_prior_index": 62,
        "H4_prior_index": 373,
        "H1_prior_index": 1428,
        "pre_local_low": 4550.455,
        "confirmation_time": "2026-03-31T05:10:00Z",
        "impulse_extreme": 4547.9,
        "fib50": 4558.645,
        "fib62": 4561.224,
        "entry_mid": 4559.934,
        "invalid": 4569.39,
        "risk_points": 9.456,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-31T05:15:00Z",
        "target1": 4550.479,
        "target2": 4541.023,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4571.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4581.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4553.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4565.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.43,
        "D_prior_index": 62,
        "H4_prior_index": 374,
        "H1_prior_index": 1430,
        "pre_local_high": 4581.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-31T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4564.15,
        "D_prior_index": 62,
        "H4_prior_index": 374,
        "H1_prior_index": 1431,
        "pre_local_low": 4553.445,
        "confirmation_time": "2026-03-31T07:10:00Z",
        "impulse_extreme": 4550.5,
        "fib50": 4557.325,
        "fib62": 4558.963,
        "entry_mid": 4558.144,
        "invalid": 4564.15,
        "risk_points": 6.006,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-31T07:30:00Z",
        "target1": 4552.138,
        "target2": 4546.132,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4543.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-31T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4575.4,
        "D_prior_index": 62,
        "H4_prior_index": 374,
        "H1_prior_index": 1432,
        "pre_local_low": 4543.51,
        "confirmation_time": "2026-03-31T10:35:00Z",
        "impulse_extreme": 4532.92,
        "fib50": 4554.16,
        "fib62": 4559.258,
        "entry_mid": 4556.709,
        "invalid": 4575.4,
        "risk_points": 18.691,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-31T11:10:00Z",
        "target1": 4538.018,
        "target2": 4519.326,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4567.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-03-31T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4563.495,
        "D_prior_index": 62,
        "H4_prior_index": 375,
        "H1_prior_index": 1433,
        "pre_local_high": 4575.4,
        "confirmation_time": "2026-03-31T11:20:00Z",
        "impulse_extreme": 4576.995,
        "fib50": 4570.245,
        "fib62": 4568.625,
        "entry_mid": 4569.435,
        "invalid": 4563.495,
        "risk_points": 5.94,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-03-31T11:30:00Z",
        "target1": 4575.375,
        "target2": 4581.315,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4563.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4597.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-31T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4571.48,
        "D_prior_index": 62,
        "H4_prior_index": 375,
        "H1_prior_index": 1436,
        "pre_local_high": 4597.76,
        "confirmation_time": "2026-03-31T13:50:00Z",
        "impulse_extreme": 4609.74,
        "fib50": 4590.61,
        "fib62": 4586.019,
        "entry_mid": 4588.314,
        "invalid": 4571.48,
        "risk_points": 16.834,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4590.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4567.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4583.845,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1437,
        "pre_local_low": 4564.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4587.84,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1437,
        "pre_local_low": 4567.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-31T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.285,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1437,
        "pre_local_high": 4597.76,
        "confirmation_time": "2026-03-31T13:50:00Z",
        "impulse_extreme": 4609.74,
        "fib50": 4589.012,
        "fib62": 4584.038,
        "entry_mid": 4586.525,
        "invalid": 4568.285,
        "risk_points": 18.24,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4602.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4625.565,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1439,
        "pre_local_low": 4572.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-31T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.245,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1439,
        "pre_local_high": 4630.42,
        "confirmation_time": "2026-03-31T16:35:00Z",
        "impulse_extreme": 4633.7,
        "fib50": 4620.472,
        "fib62": 4617.298,
        "entry_mid": 4618.885,
        "invalid": 4607.245,
        "risk_points": 11.64,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4623.745,
        "D_prior_index": 62,
        "H4_prior_index": 376,
        "H1_prior_index": 1439,
        "pre_local_low": 4594.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4607.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4656.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4658.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4667.785,
        "D_prior_index": 62,
        "H4_prior_index": 377,
        "H1_prior_index": 1441,
        "pre_local_low": 4607.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4669.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4671.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4681.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4685.805,
        "D_prior_index": 62,
        "H4_prior_index": 377,
        "H1_prior_index": 1443,
        "pre_local_low": 4653.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-03-31T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4687.335,
        "D_prior_index": 62,
        "H4_prior_index": 377,
        "H1_prior_index": 1444,
        "pre_local_low": 4660.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-03-31T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.86,
        "D_prior_index": 62,
        "H4_prior_index": 377,
        "H1_prior_index": 1444,
        "pre_local_high": 4687.335,
        "confirmation_time": "2026-03-31T22:35:00Z",
        "impulse_extreme": 4695.37,
        "fib50": 4680.115,
        "fib62": 4676.454,
        "entry_mid": 4678.284,
        "invalid": 4664.86,
        "risk_points": 13.424,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4663.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4677.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4671.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-03-31T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-03-31T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T00:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4722.6,
        "D_prior_index": 63,
        "H4_prior_index": 378,
        "H1_prior_index": 1447,
        "pre_local_low": 4664.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4689.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4724.52,
        "D_prior_index": 63,
        "H4_prior_index": 379,
        "H1_prior_index": 1448,
        "pre_local_low": 4671.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4683.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4692.745,
        "D_prior_index": 63,
        "H4_prior_index": 379,
        "H1_prior_index": 1450,
        "pre_local_low": 4678.235,
        "confirmation_time": "2026-04-01T04:00:00Z",
        "impulse_extreme": 4675.59,
        "fib50": 4684.167,
        "fib62": 4686.226,
        "entry_mid": 4685.197,
        "invalid": 4692.745,
        "risk_points": 7.548,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T05:10:00Z",
        "target1": 4677.649,
        "target2": 4670.1,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.43,
        "D_prior_index": 63,
        "H4_prior_index": 379,
        "H1_prior_index": 1450,
        "pre_local_low": 4678.235,
        "confirmation_time": "2026-04-01T04:00:00Z",
        "impulse_extreme": 4675.59,
        "fib50": 4685.01,
        "fib62": 4687.271,
        "entry_mid": 4686.14,
        "invalid": 4694.43,
        "risk_points": 8.29,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T05:15:00Z",
        "target1": 4677.851,
        "target2": 4669.561,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4683.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4681.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T05:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4703.78,
        "D_prior_index": 63,
        "H4_prior_index": 380,
        "H1_prior_index": 1452,
        "pre_local_low": 4667.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-01T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4682.55,
        "D_prior_index": 63,
        "H4_prior_index": 380,
        "H1_prior_index": 1453,
        "pre_local_high": 4703.78,
        "confirmation_time": "2026-04-01T06:20:00Z",
        "impulse_extreme": 4709.965,
        "fib50": 4696.257,
        "fib62": 4692.968,
        "entry_mid": 4694.613,
        "invalid": 4682.55,
        "risk_points": 12.063,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.01,
        "D_prior_index": 63,
        "H4_prior_index": 380,
        "H1_prior_index": 1453,
        "pre_local_low": 4673.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.305,
        "D_prior_index": 63,
        "H4_prior_index": 380,
        "H1_prior_index": 1454,
        "pre_local_high": 4733.235,
        "confirmation_time": "2026-04-01T07:35:00Z",
        "impulse_extreme": 4747.815,
        "fib50": 4730.56,
        "fib62": 4726.419,
        "entry_mid": 4728.489,
        "invalid": 4713.305,
        "risk_points": 15.184,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T07:40:00Z",
        "target1": 4743.674,
        "target2": 4758.858,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4740.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4726.15,
        "D_prior_index": 63,
        "H4_prior_index": 380,
        "H1_prior_index": 1455,
        "pre_local_high": 4747.815,
        "confirmation_time": "2026-04-01T11:35:00Z",
        "impulse_extreme": 4758.835,
        "fib50": 4742.493,
        "fib62": 4738.57,
        "entry_mid": 4740.531,
        "invalid": 4726.15,
        "risk_points": 14.381,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T12:05:00Z",
        "target1": 4754.913,
        "target2": 4769.294,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4713.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4713.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T10:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4715.47,
        "D_prior_index": 63,
        "H4_prior_index": 381,
        "H1_prior_index": 1457,
        "pre_local_high": 4740.565,
        "confirmation_time": "2026-04-01T11:15:00Z",
        "impulse_extreme": 4744.18,
        "fib50": 4729.825,
        "fib62": 4726.38,
        "entry_mid": 4728.102,
        "invalid": 4715.47,
        "risk_points": 12.632,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T12:25:00Z",
        "target1": 4740.735,
        "target2": 4753.367,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4740.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4753.305,
        "D_prior_index": 63,
        "H4_prior_index": 381,
        "H1_prior_index": 1459,
        "pre_local_low": 4724.725,
        "confirmation_time": "2026-04-01T13:00:00Z",
        "impulse_extreme": 4716.28,
        "fib50": 4734.792,
        "fib62": 4739.235,
        "entry_mid": 4737.014,
        "invalid": 4753.305,
        "risk_points": 16.291,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T13:15:00Z",
        "target1": 4720.723,
        "target2": 4704.432,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4730.84,
        "D_prior_index": 63,
        "H4_prior_index": 382,
        "H1_prior_index": 1460,
        "pre_local_high": 4761.62,
        "confirmation_time": "2026-04-01T14:50:00Z",
        "impulse_extreme": 4768.55,
        "fib50": 4749.695,
        "fib62": 4745.17,
        "entry_mid": 4747.432,
        "invalid": 4730.84,
        "risk_points": 16.592,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T18:35:00Z",
        "target1": 4764.025,
        "target2": 4780.617,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-01T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4724.3,
        "D_prior_index": 63,
        "H4_prior_index": 382,
        "H1_prior_index": 1461,
        "pre_local_high": 4753.305,
        "confirmation_time": "2026-04-01T14:40:00Z",
        "impulse_extreme": 4756.57,
        "fib50": 4740.435,
        "fib62": 4736.563,
        "entry_mid": 4738.499,
        "invalid": 4724.3,
        "risk_points": 14.199,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4754.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4756.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4775.005,
        "D_prior_index": 63,
        "H4_prior_index": 382,
        "H1_prior_index": 1462,
        "pre_local_low": 4724.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4776.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.16,
        "D_prior_index": 63,
        "H4_prior_index": 382,
        "H1_prior_index": 1462,
        "pre_local_low": 4730.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T16:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4790.84,
        "D_prior_index": 63,
        "H4_prior_index": 382,
        "H1_prior_index": 1463,
        "pre_local_low": 4730.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4793.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4742.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4751.335,
        "D_prior_index": 63,
        "H4_prior_index": 383,
        "H1_prior_index": 1466,
        "pre_local_high": 4791.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4778.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4758.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4771.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4751.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4781.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-01T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4783.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-01T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4773.795,
        "D_prior_index": 64,
        "H4_prior_index": 384,
        "H1_prior_index": 1469,
        "pre_local_high": 4783.005,
        "confirmation_time": "2026-04-01T23:05:00Z",
        "impulse_extreme": 4789.31,
        "fib50": 4781.552,
        "fib62": 4779.691,
        "entry_mid": 4780.622,
        "invalid": 4773.795,
        "risk_points": 6.827,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-01T23:45:00Z",
        "target1": 4787.448,
        "target2": 4794.275,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-01T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.095,
        "D_prior_index": 64,
        "H4_prior_index": 384,
        "H1_prior_index": 1469,
        "pre_local_high": 4800.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-01T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-01T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4800.8,
        "D_prior_index": 64,
        "H4_prior_index": 384,
        "H1_prior_index": 1469,
        "pre_local_low": 4751.98,
        "confirmation_time": "2026-04-02T01:00:00Z",
        "impulse_extreme": 4733.275,
        "fib50": 4767.038,
        "fib62": 4775.14,
        "entry_mid": 4771.089,
        "invalid": 4800.8,
        "risk_points": 29.711,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4775.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4649.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4711.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4679.065,
        "D_prior_index": 64,
        "H4_prior_index": 385,
        "H1_prior_index": 1472,
        "pre_local_high": 4797.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-02T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4699.52,
        "D_prior_index": 64,
        "H4_prior_index": 385,
        "H1_prior_index": 1473,
        "pre_local_low": 4655.525,
        "confirmation_time": "2026-04-02T05:30:00Z",
        "impulse_extreme": 4637.495,
        "fib50": 4668.507,
        "fib62": 4675.95,
        "entry_mid": 4672.229,
        "invalid": 4699.52,
        "risk_points": 27.291,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T04:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4657.175,
        "D_prior_index": 64,
        "H4_prior_index": 385,
        "H1_prior_index": 1474,
        "pre_local_high": 4699.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-02T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4675.3,
        "D_prior_index": 64,
        "H4_prior_index": 386,
        "H1_prior_index": 1475,
        "pre_local_low": 4657.175,
        "confirmation_time": "2026-04-02T05:30:00Z",
        "impulse_extreme": 4637.495,
        "fib50": 4656.398,
        "fib62": 4660.934,
        "entry_mid": 4658.666,
        "invalid": 4675.3,
        "risk_points": 16.634,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4598.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4627.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4628.95,
        "D_prior_index": 64,
        "H4_prior_index": 386,
        "H1_prior_index": 1478,
        "pre_local_high": 4651.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4613.15,
        "D_prior_index": 64,
        "H4_prior_index": 387,
        "H1_prior_index": 1479,
        "pre_local_high": 4651.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4632.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4615.65,
        "D_prior_index": 64,
        "H4_prior_index": 387,
        "H1_prior_index": 1479,
        "pre_local_high": 4649.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4635.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T10:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4603.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4631.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-02T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4616.855,
        "D_prior_index": 64,
        "H4_prior_index": 387,
        "H1_prior_index": 1481,
        "pre_local_high": 4635.435,
        "confirmation_time": "2026-04-02T13:50:00Z",
        "impulse_extreme": 4643.745,
        "fib50": 4630.3,
        "fib62": 4627.073,
        "entry_mid": 4628.687,
        "invalid": 4616.855,
        "risk_points": 11.832,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-02T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4594.71,
        "D_prior_index": 64,
        "H4_prior_index": 387,
        "H1_prior_index": 1482,
        "pre_local_high": 4631.55,
        "confirmation_time": "2026-04-02T13:45:00Z",
        "impulse_extreme": 4637.305,
        "fib50": 4616.007,
        "fib62": 4610.896,
        "entry_mid": 4613.452,
        "invalid": 4594.71,
        "risk_points": 18.742,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4658.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4648.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-02T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4668.63,
        "D_prior_index": 64,
        "H4_prior_index": 388,
        "H1_prior_index": 1486,
        "pre_local_low": 4652.76,
        "confirmation_time": "2026-04-02T16:15:00Z",
        "impulse_extreme": 4646.26,
        "fib50": 4657.445,
        "fib62": 4660.129,
        "entry_mid": 4658.787,
        "invalid": 4668.63,
        "risk_points": 9.843,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-02T16:30:00Z",
        "target1": 4648.944,
        "target2": 4639.102,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4642.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4670.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-02T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4656.555,
        "D_prior_index": 64,
        "H4_prior_index": 389,
        "H1_prior_index": 1487,
        "pre_local_high": 4676.84,
        "confirmation_time": "2026-04-02T19:05:00Z",
        "impulse_extreme": 4680.1,
        "fib50": 4668.328,
        "fib62": 4665.502,
        "entry_mid": 4666.915,
        "invalid": 4656.555,
        "risk_points": 10.36,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-02T19:20:00Z",
        "target1": 4677.275,
        "target2": 4687.634,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-02T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4646.285,
        "D_prior_index": 64,
        "H4_prior_index": 389,
        "H1_prior_index": 1487,
        "pre_local_high": 4670.83,
        "confirmation_time": "2026-04-02T19:00:00Z",
        "impulse_extreme": 4675.915,
        "fib50": 4661.1,
        "fib62": 4657.544,
        "entry_mid": 4659.322,
        "invalid": 4646.285,
        "risk_points": 13.037,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T17:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4645.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T17:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4659.0,
        "D_prior_index": 64,
        "H4_prior_index": 389,
        "H1_prior_index": 1487,
        "pre_local_low": 4642.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-02T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4676.98,
        "D_prior_index": 64,
        "H4_prior_index": 389,
        "H1_prior_index": 1490,
        "pre_local_low": 4650.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-02T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-02T20:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4666.88,
        "D_prior_index": 64,
        "H4_prior_index": 389,
        "H1_prior_index": 1490,
        "pre_local_high": 4682.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-05T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-05T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4642.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-05T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-05T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.09,
        "D_prior_index": 65,
        "H4_prior_index": 390,
        "H1_prior_index": 1491,
        "pre_local_high": 4678.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-05T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-05T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4619.76,
        "D_prior_index": 65,
        "H4_prior_index": 390,
        "H1_prior_index": 1492,
        "pre_local_low": 4604.97,
        "confirmation_time": "2026-04-06T00:25:00Z",
        "impulse_extreme": 4600.85,
        "fib50": 4610.305,
        "fib62": 4612.574,
        "entry_mid": 4611.44,
        "invalid": 4619.76,
        "risk_points": 8.32,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T00:30:00Z",
        "target1": 4603.119,
        "target2": 4594.799,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.035,
        "D_prior_index": 65,
        "H4_prior_index": 390,
        "H1_prior_index": 1493,
        "pre_local_high": 4654.59,
        "confirmation_time": "2026-04-06T02:15:00Z",
        "impulse_extreme": 4665.435,
        "fib50": 4636.235,
        "fib62": 4629.227,
        "entry_mid": 4632.731,
        "invalid": 4607.035,
        "risk_points": 25.696,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T03:00:00Z",
        "target1": 4658.427,
        "target2": 4684.123,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4629.2,
        "D_prior_index": 65,
        "H4_prior_index": 390,
        "H1_prior_index": 1493,
        "pre_local_low": 4604.97,
        "confirmation_time": "2026-04-06T00:25:00Z",
        "impulse_extreme": 4600.85,
        "fib50": 4615.025,
        "fib62": 4618.427,
        "entry_mid": 4616.726,
        "invalid": 4629.2,
        "risk_points": 12.474,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T00:40:00Z",
        "target1": 4604.252,
        "target2": 4591.778,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4620.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4643.24,
        "D_prior_index": 65,
        "H4_prior_index": 391,
        "H1_prior_index": 1494,
        "pre_local_low": 4600.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4621.76,
        "D_prior_index": 65,
        "H4_prior_index": 391,
        "H1_prior_index": 1494,
        "pre_local_high": 4643.24,
        "confirmation_time": "2026-04-06T02:15:00Z",
        "impulse_extreme": 4665.435,
        "fib50": 4643.597,
        "fib62": 4638.356,
        "entry_mid": 4640.977,
        "invalid": 4621.76,
        "risk_points": 19.217,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T03:00:00Z",
        "target1": 4660.194,
        "target2": 4679.411,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4625.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4625.47,
        "D_prior_index": 65,
        "H4_prior_index": 391,
        "H1_prior_index": 1496,
        "pre_local_high": 4671.73,
        "confirmation_time": "2026-04-06T05:10:00Z",
        "impulse_extreme": 4677.125,
        "fib50": 4651.298,
        "fib62": 4645.099,
        "entry_mid": 4648.198,
        "invalid": 4625.47,
        "risk_points": 22.728,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T06:00:00Z",
        "target1": 4670.926,
        "target2": 4693.655,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4643.505,
        "D_prior_index": 65,
        "H4_prior_index": 392,
        "H1_prior_index": 1499,
        "pre_local_high": 4678.93,
        "confirmation_time": "2026-04-06T07:50:00Z",
        "impulse_extreme": 4686.03,
        "fib50": 4664.767,
        "fib62": 4659.664,
        "entry_mid": 4662.216,
        "invalid": 4643.505,
        "risk_points": 18.711,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T12:20:00Z",
        "target1": 4680.927,
        "target2": 4699.638,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4662.325,
        "D_prior_index": 65,
        "H4_prior_index": 392,
        "H1_prior_index": 1499,
        "pre_local_low": 4643.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-06T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4645.12,
        "D_prior_index": 65,
        "H4_prior_index": 392,
        "H1_prior_index": 1500,
        "pre_local_high": 4668.235,
        "confirmation_time": "2026-04-06T07:45:00Z",
        "impulse_extreme": 4672.105,
        "fib50": 4658.612,
        "fib62": 4655.374,
        "entry_mid": 4656.993,
        "invalid": 4645.12,
        "risk_points": 11.873,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4695.855,
        "D_prior_index": 65,
        "H4_prior_index": 392,
        "H1_prior_index": 1501,
        "pre_local_low": 4645.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4703.805,
        "D_prior_index": 65,
        "H4_prior_index": 393,
        "H1_prior_index": 1502,
        "pre_local_low": 4653.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4684.655,
        "D_prior_index": 65,
        "H4_prior_index": 393,
        "H1_prior_index": 1503,
        "pre_local_high": 4706.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.55,
        "D_prior_index": 65,
        "H4_prior_index": 393,
        "H1_prior_index": 1504,
        "pre_local_low": 4684.655,
        "confirmation_time": "2026-04-06T11:45:00Z",
        "impulse_extreme": 4681.3,
        "fib50": 4687.925,
        "fib62": 4689.515,
        "entry_mid": 4688.72,
        "invalid": 4694.55,
        "risk_points": 5.83,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T14:00:00Z",
        "target1": 4682.89,
        "target2": 4677.06,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4681.42,
        "D_prior_index": 65,
        "H4_prior_index": 393,
        "H1_prior_index": 1505,
        "pre_local_low": 4659.655,
        "confirmation_time": "2026-04-06T15:35:00Z",
        "impulse_extreme": 4652.095,
        "fib50": 4666.757,
        "fib62": 4670.276,
        "entry_mid": 4668.517,
        "invalid": 4681.42,
        "risk_points": 12.903,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T15:50:00Z",
        "target1": 4655.614,
        "target2": 4642.711,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4679.15,
        "D_prior_index": 65,
        "H4_prior_index": 394,
        "H1_prior_index": 1506,
        "pre_local_low": 4659.655,
        "confirmation_time": "2026-04-06T15:35:00Z",
        "impulse_extreme": 4652.095,
        "fib50": 4665.622,
        "fib62": 4668.869,
        "entry_mid": 4667.246,
        "invalid": 4679.15,
        "risk_points": 11.904,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T15:45:00Z",
        "target1": 4655.342,
        "target2": 4643.437,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4690.635,
        "D_prior_index": 65,
        "H4_prior_index": 394,
        "H1_prior_index": 1507,
        "pre_local_low": 4659.655,
        "confirmation_time": "2026-04-06T15:35:00Z",
        "impulse_extreme": 4652.095,
        "fib50": 4671.365,
        "fib62": 4675.99,
        "entry_mid": 4673.677,
        "invalid": 4690.635,
        "risk_points": 16.958,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T16:10:00Z",
        "target1": 4656.72,
        "target2": 4639.762,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4675.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4655.665,
        "D_prior_index": 65,
        "H4_prior_index": 394,
        "H1_prior_index": 1508,
        "pre_local_high": 4697.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4652.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4671.2,
        "D_prior_index": 65,
        "H4_prior_index": 394,
        "H1_prior_index": 1508,
        "pre_local_low": 4655.665,
        "confirmation_time": "2026-04-06T15:35:00Z",
        "impulse_extreme": 4652.095,
        "fib50": 4661.648,
        "fib62": 4663.94,
        "entry_mid": 4662.794,
        "invalid": 4671.2,
        "risk_points": 8.406,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T15:45:00Z",
        "target1": 4654.388,
        "target2": 4645.981,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4672.66,
        "D_prior_index": 65,
        "H4_prior_index": 394,
        "H1_prior_index": 1509,
        "pre_local_low": 4652.095,
        "confirmation_time": "2026-04-06T18:35:00Z",
        "impulse_extreme": 4649.685,
        "fib50": 4661.173,
        "fib62": 4663.93,
        "entry_mid": 4662.551,
        "invalid": 4672.66,
        "risk_points": 10.109,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T22:00:00Z",
        "target1": 4652.442,
        "target2": 4642.333,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4660.635,
        "D_prior_index": 65,
        "H4_prior_index": 395,
        "H1_prior_index": 1510,
        "pre_local_low": 4645.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T18:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T18:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4648.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-06T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4659.52,
        "D_prior_index": 65,
        "H4_prior_index": 395,
        "H1_prior_index": 1512,
        "pre_local_low": 4648.905,
        "confirmation_time": "2026-04-06T19:15:00Z",
        "impulse_extreme": 4645.805,
        "fib50": 4652.663,
        "fib62": 4654.308,
        "entry_mid": 4653.485,
        "invalid": 4659.52,
        "risk_points": 6.035,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-06T19:30:00Z",
        "target1": 4647.451,
        "target2": 4641.416,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4658.195,
        "D_prior_index": 65,
        "H4_prior_index": 395,
        "H1_prior_index": 1513,
        "pre_local_low": 4645.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4658.525,
        "D_prior_index": 65,
        "H4_prior_index": 395,
        "H1_prior_index": 1513,
        "pre_local_low": 4645.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-06T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4659.22,
        "D_prior_index": 66,
        "H4_prior_index": 396,
        "H1_prior_index": 1514,
        "pre_local_high": 4667.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-06T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-06T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4649.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4661.0,
        "D_prior_index": 66,
        "H4_prior_index": 396,
        "H1_prior_index": 1516,
        "pre_local_low": 4649.46,
        "confirmation_time": "2026-04-07T01:05:00Z",
        "impulse_extreme": 4638.035,
        "fib50": 4649.517,
        "fib62": 4652.273,
        "entry_mid": 4650.895,
        "invalid": 4661.0,
        "risk_points": 10.105,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T01:15:00Z",
        "target1": 4640.791,
        "target2": 4630.686,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T00:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4661.515,
        "D_prior_index": 66,
        "H4_prior_index": 396,
        "H1_prior_index": 1516,
        "pre_local_low": 4649.46,
        "confirmation_time": "2026-04-07T01:05:00Z",
        "impulse_extreme": 4638.035,
        "fib50": 4649.775,
        "fib62": 4652.593,
        "entry_mid": 4651.184,
        "invalid": 4661.515,
        "risk_points": 10.331,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T01:15:00Z",
        "target1": 4640.853,
        "target2": 4630.521,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T01:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4635.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4639.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4651.295,
        "D_prior_index": 66,
        "H4_prior_index": 397,
        "H1_prior_index": 1520,
        "pre_local_low": 4626.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4664.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4623.475,
        "D_prior_index": 66,
        "H4_prior_index": 398,
        "H1_prior_index": 1521,
        "pre_local_high": 4664.12,
        "confirmation_time": "2026-04-07T08:20:00Z",
        "impulse_extreme": 4691.225,
        "fib50": 4657.35,
        "fib62": 4649.22,
        "entry_mid": 4653.285,
        "invalid": 4623.475,
        "risk_points": 29.81,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T10:40:00Z",
        "target1": 4683.095,
        "target2": 4712.905,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4638.04,
        "D_prior_index": 66,
        "H4_prior_index": 398,
        "H1_prior_index": 1522,
        "pre_local_high": 4664.12,
        "confirmation_time": "2026-04-07T08:20:00Z",
        "impulse_extreme": 4691.225,
        "fib50": 4664.632,
        "fib62": 4658.25,
        "entry_mid": 4661.441,
        "invalid": 4638.04,
        "risk_points": 23.401,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T09:40:00Z",
        "target1": 4684.843,
        "target2": 4708.244,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4649.32,
        "D_prior_index": 66,
        "H4_prior_index": 398,
        "H1_prior_index": 1522,
        "pre_local_low": 4623.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4656.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4657.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4636.91,
        "D_prior_index": 66,
        "H4_prior_index": 398,
        "H1_prior_index": 1523,
        "pre_local_high": 4657.225,
        "confirmation_time": "2026-04-07T08:10:00Z",
        "impulse_extreme": 4665.62,
        "fib50": 4651.265,
        "fib62": 4647.82,
        "entry_mid": 4649.542,
        "invalid": 4636.91,
        "risk_points": 12.632,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T10:45:00Z",
        "target1": 4662.175,
        "target2": 4674.807,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4647.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4693.88,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1525,
        "pre_local_low": 4636.91,
        "confirmation_time": "2026-04-07T11:10:00Z",
        "impulse_extreme": 4629.02,
        "fib50": 4661.45,
        "fib62": 4669.233,
        "entry_mid": 4665.342,
        "invalid": 4693.88,
        "risk_points": 28.538,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T11:40:00Z",
        "target1": 4636.803,
        "target2": 4608.265,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.905,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1525,
        "pre_local_low": 4639.09,
        "confirmation_time": "2026-04-07T11:10:00Z",
        "impulse_extreme": 4629.02,
        "fib50": 4661.962,
        "fib62": 4669.869,
        "entry_mid": 4665.916,
        "invalid": 4694.905,
        "risk_points": 28.989,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T11:40:00Z",
        "target1": 4636.926,
        "target2": 4607.937,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4658.905,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1525,
        "pre_local_high": 4694.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4657.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4680.735,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1526,
        "pre_local_low": 4658.905,
        "confirmation_time": "2026-04-07T10:45:00Z",
        "impulse_extreme": 4649.67,
        "fib50": 4665.202,
        "fib62": 4668.93,
        "entry_mid": 4667.066,
        "invalid": 4680.735,
        "risk_points": 13.669,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T12:05:00Z",
        "target1": 4653.398,
        "target2": 4639.729,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4653.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.28,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1527,
        "pre_local_low": 4629.02,
        "confirmation_time": "2026-04-07T14:00:00Z",
        "impulse_extreme": 4622.785,
        "fib50": 4643.532,
        "fib62": 4648.512,
        "entry_mid": 4646.022,
        "invalid": 4664.28,
        "risk_points": 18.258,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T14:20:00Z",
        "target1": 4627.764,
        "target2": 4609.507,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4665.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4651.315,
        "D_prior_index": 66,
        "H4_prior_index": 399,
        "H1_prior_index": 1528,
        "pre_local_high": 4670.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4663.08,
        "D_prior_index": 66,
        "H4_prior_index": 400,
        "H1_prior_index": 1529,
        "pre_local_low": 4647.075,
        "confirmation_time": "2026-04-07T13:40:00Z",
        "impulse_extreme": 4635.625,
        "fib50": 4649.352,
        "fib62": 4652.647,
        "entry_mid": 4651.0,
        "invalid": 4663.08,
        "risk_points": 12.08,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T13:50:00Z",
        "target1": 4638.92,
        "target2": 4626.839,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4663.49,
        "D_prior_index": 66,
        "H4_prior_index": 400,
        "H1_prior_index": 1529,
        "pre_local_low": 4647.075,
        "confirmation_time": "2026-04-07T13:40:00Z",
        "impulse_extreme": 4635.625,
        "fib50": 4649.557,
        "fib62": 4652.901,
        "entry_mid": 4651.229,
        "invalid": 4663.49,
        "risk_points": 12.261,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T13:50:00Z",
        "target1": 4638.969,
        "target2": 4626.708,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T14:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4649.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4661.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4624.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-07T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4640.645,
        "D_prior_index": 66,
        "H4_prior_index": 400,
        "H1_prior_index": 1531,
        "pre_local_high": 4661.935,
        "confirmation_time": "2026-04-07T16:00:00Z",
        "impulse_extreme": 4668.825,
        "fib50": 4654.735,
        "fib62": 4651.353,
        "entry_mid": 4653.044,
        "invalid": 4640.645,
        "risk_points": 12.399,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-07T16:05:00Z",
        "target1": 4665.443,
        "target2": 4677.843,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4656.865,
        "D_prior_index": 66,
        "H4_prior_index": 400,
        "H1_prior_index": 1531,
        "pre_local_low": 4607.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4659.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4654.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.23,
        "D_prior_index": 66,
        "H4_prior_index": 401,
        "H1_prior_index": 1536,
        "pre_local_low": 4657.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4716.95,
        "D_prior_index": 66,
        "H4_prior_index": 401,
        "H1_prior_index": 1536,
        "pre_local_low": 4657.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-07T22:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.04,
        "D_prior_index": 67,
        "H4_prior_index": 402,
        "H1_prior_index": 1537,
        "pre_local_high": 4764.505,
        "confirmation_time": "2026-04-07T22:35:00Z",
        "impulse_extreme": 4779.815,
        "fib50": 4746.427,
        "fib62": 4738.414,
        "entry_mid": 4742.421,
        "invalid": 4713.04,
        "risk_points": 29.381,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-07T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4824.7,
        "D_prior_index": 67,
        "H4_prior_index": 402,
        "H1_prior_index": 1538,
        "pre_local_low": 4703.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4828.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-07T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-07T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4804.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4858.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4808.885,
        "D_prior_index": 67,
        "H4_prior_index": 402,
        "H1_prior_index": 1539,
        "pre_local_high": 4858.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4827.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4806.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.12,
        "D_prior_index": 67,
        "H4_prior_index": 403,
        "H1_prior_index": 1540,
        "pre_local_high": 4858.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4808.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-08T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4796.64,
        "D_prior_index": 67,
        "H4_prior_index": 403,
        "H1_prior_index": 1542,
        "pre_local_high": 4825.435,
        "confirmation_time": "2026-04-08T05:45:00Z",
        "impulse_extreme": 4831.69,
        "fib50": 4814.165,
        "fib62": 4809.959,
        "entry_mid": 4812.062,
        "invalid": 4796.64,
        "risk_points": 15.422,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-08T07:00:00Z",
        "target1": 4827.484,
        "target2": 4842.906,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-08T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4795.25,
        "D_prior_index": 67,
        "H4_prior_index": 403,
        "H1_prior_index": 1542,
        "pre_local_high": 4825.435,
        "confirmation_time": "2026-04-08T05:45:00Z",
        "impulse_extreme": 4831.69,
        "fib50": 4813.47,
        "fib62": 4809.097,
        "entry_mid": 4811.284,
        "invalid": 4795.25,
        "risk_points": 16.034,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-08T07:00:00Z",
        "target1": 4827.317,
        "target2": 4843.351,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4793.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-08T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4790.38,
        "D_prior_index": 67,
        "H4_prior_index": 403,
        "H1_prior_index": 1543,
        "pre_local_high": 4820.915,
        "confirmation_time": "2026-04-08T05:30:00Z",
        "impulse_extreme": 4823.505,
        "fib50": 4806.943,
        "fib62": 4802.967,
        "entry_mid": 4804.955,
        "invalid": 4790.38,
        "risk_points": 14.575,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-08T07:35:00Z",
        "target1": 4819.53,
        "target2": 4834.105,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4806.975,
        "D_prior_index": 67,
        "H4_prior_index": 403,
        "H1_prior_index": 1543,
        "pre_local_low": 4790.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4797.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-08T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4839.97,
        "D_prior_index": 67,
        "H4_prior_index": 404,
        "H1_prior_index": 1545,
        "pre_local_low": 4798.085,
        "confirmation_time": "2026-04-08T08:40:00Z",
        "impulse_extreme": 4790.39,
        "fib50": 4815.18,
        "fib62": 4821.13,
        "entry_mid": 4818.155,
        "invalid": 4839.97,
        "risk_points": 21.815,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4821.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4808.07,
        "D_prior_index": 67,
        "H4_prior_index": 404,
        "H1_prior_index": 1547,
        "pre_local_high": 4839.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4819.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4807.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4776.285,
        "D_prior_index": 67,
        "H4_prior_index": 405,
        "H1_prior_index": 1548,
        "pre_local_high": 4819.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4790.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4771.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4796.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4779.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4797.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4778.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-08T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4806.92,
        "D_prior_index": 67,
        "H4_prior_index": 406,
        "H1_prior_index": 1552,
        "pre_local_low": 4768.4,
        "confirmation_time": "2026-04-08T14:25:00Z",
        "impulse_extreme": 4761.135,
        "fib50": 4784.028,
        "fib62": 4789.522,
        "entry_mid": 4786.775,
        "invalid": 4806.92,
        "risk_points": 20.145,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.1,
        "D_prior_index": 67,
        "H4_prior_index": 406,
        "H1_prior_index": 1552,
        "pre_local_high": 4807.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4761.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4763.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4765.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4756.43,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1556,
        "pre_local_high": 4765.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T18:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4727.135,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1557,
        "pre_local_high": 4765.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-08T18:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4744.705,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1557,
        "pre_local_low": 4717.32,
        "confirmation_time": "2026-04-08T18:35:00Z",
        "impulse_extreme": 4713.48,
        "fib50": 4729.092,
        "fib62": 4732.84,
        "entry_mid": 4730.966,
        "invalid": 4744.705,
        "risk_points": 13.739,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-08T19:50:00Z",
        "target1": 4717.227,
        "target2": 4703.488,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4718.66,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1558,
        "pre_local_low": 4699.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4732.365,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1559,
        "pre_local_low": 4699.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4720.945,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1559,
        "pre_local_high": 4732.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4724.59,
        "D_prior_index": 67,
        "H4_prior_index": 407,
        "H1_prior_index": 1559,
        "pre_local_low": 4699.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-08T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4704.58,
        "D_prior_index": 68,
        "H4_prior_index": 408,
        "H1_prior_index": 1560,
        "pre_local_high": 4732.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4719.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-08T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-08T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T00:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4719.3,
        "D_prior_index": 68,
        "H4_prior_index": 408,
        "H1_prior_index": 1562,
        "pre_local_low": 4698.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4699.905,
        "D_prior_index": 68,
        "H4_prior_index": 409,
        "H1_prior_index": 1563,
        "pre_local_high": 4720.345,
        "confirmation_time": "2026-04-09T01:10:00Z",
        "impulse_extreme": 4722.065,
        "fib50": 4710.985,
        "fib62": 4708.326,
        "entry_mid": 4709.655,
        "invalid": 4699.905,
        "risk_points": 9.75,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-09T01:20:00Z",
        "target1": 4719.406,
        "target2": 4729.156,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.83,
        "D_prior_index": 68,
        "H4_prior_index": 409,
        "H1_prior_index": 1563,
        "pre_local_low": 4698.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4728.925,
        "D_prior_index": 68,
        "H4_prior_index": 409,
        "H1_prior_index": 1564,
        "pre_local_low": 4699.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.04,
        "D_prior_index": 68,
        "H4_prior_index": 409,
        "H1_prior_index": 1564,
        "pre_local_low": 4703.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.36,
        "D_prior_index": 68,
        "H4_prior_index": 409,
        "H1_prior_index": 1566,
        "pre_local_low": 4705.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4714.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4711.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T07:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4731.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4726.575,
        "D_prior_index": 68,
        "H4_prior_index": 410,
        "H1_prior_index": 1570,
        "pre_local_low": 4703.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4720.34,
        "D_prior_index": 68,
        "H4_prior_index": 410,
        "H1_prior_index": 1570,
        "pre_local_high": 4731.735,
        "confirmation_time": "2026-04-09T09:35:00Z",
        "impulse_extreme": 4732.74,
        "fib50": 4726.54,
        "fib62": 4725.052,
        "entry_mid": 4725.796,
        "invalid": 4720.34,
        "risk_points": 5.456,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-09T09:45:00Z",
        "target1": 4731.252,
        "target2": 4736.708,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.19,
        "D_prior_index": 68,
        "H4_prior_index": 410,
        "H1_prior_index": 1570,
        "pre_local_low": 4705.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-09T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.25,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1571,
        "pre_local_high": 4733.19,
        "confirmation_time": "2026-04-09T10:20:00Z",
        "impulse_extreme": 4738.99,
        "fib50": 4731.12,
        "fib62": 4729.231,
        "entry_mid": 4730.176,
        "invalid": 4723.25,
        "risk_points": 6.926,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4733.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-09T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.765,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1571,
        "pre_local_high": 4733.495,
        "confirmation_time": "2026-04-09T10:20:00Z",
        "impulse_extreme": 4738.99,
        "fib50": 4731.378,
        "fib62": 4729.551,
        "entry_mid": 4730.464,
        "invalid": 4723.765,
        "risk_points": 6.699,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.01,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1572,
        "pre_local_low": 4720.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-09T10:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.785,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1572,
        "pre_local_high": 4733.495,
        "confirmation_time": "2026-04-09T10:20:00Z",
        "impulse_extreme": 4738.99,
        "fib50": 4731.387,
        "fib62": 4729.563,
        "entry_mid": 4730.475,
        "invalid": 4723.785,
        "risk_points": 6.69,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4746.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4738.635,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1573,
        "pre_local_high": 4746.795,
        "confirmation_time": "2026-04-09T11:35:00Z",
        "impulse_extreme": 4749.195,
        "fib50": 4743.915,
        "fib62": 4742.648,
        "entry_mid": 4743.281,
        "invalid": 4738.635,
        "risk_points": 4.646,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-09T12:10:00Z",
        "target1": 4747.928,
        "target2": 4752.574,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4759.87,
        "D_prior_index": 68,
        "H4_prior_index": 411,
        "H1_prior_index": 1574,
        "pre_local_low": 4728.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4748.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4758.795,
        "D_prior_index": 68,
        "H4_prior_index": 412,
        "H1_prior_index": 1575,
        "pre_local_low": 4735.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4750.56,
        "D_prior_index": 68,
        "H4_prior_index": 412,
        "H1_prior_index": 1575,
        "pre_local_high": 4759.87,
        "confirmation_time": "2026-04-09T13:35:00Z",
        "impulse_extreme": 4771.75,
        "fib50": 4761.155,
        "fib62": 4758.612,
        "entry_mid": 4759.884,
        "invalid": 4750.56,
        "risk_points": 9.324,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-09T13:50:00Z",
        "target1": 4769.207,
        "target2": 4778.531,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4801.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4784.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4787.665,
        "D_prior_index": 68,
        "H4_prior_index": 413,
        "H1_prior_index": 1579,
        "pre_local_high": 4801.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4801.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4777.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.99,
        "D_prior_index": 68,
        "H4_prior_index": 413,
        "H1_prior_index": 1580,
        "pre_local_high": 4801.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-09T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4766.185,
        "D_prior_index": 68,
        "H4_prior_index": 413,
        "H1_prior_index": 1582,
        "pre_local_high": 4782.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4758.915,
        "D_prior_index": 69,
        "H4_prior_index": 414,
        "H1_prior_index": 1583,
        "pre_local_high": 4773.26,
        "confirmation_time": "2026-04-10T01:35:00Z",
        "impulse_extreme": 4777.42,
        "fib50": 4768.167,
        "fib62": 4765.947,
        "entry_mid": 4767.057,
        "invalid": 4758.915,
        "risk_points": 8.142,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T01:45:00Z",
        "target1": 4775.199,
        "target2": 4783.342,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-09T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4757.4,
        "D_prior_index": 69,
        "H4_prior_index": 414,
        "H1_prior_index": 1584,
        "pre_local_high": 4773.26,
        "confirmation_time": "2026-04-10T01:35:00Z",
        "impulse_extreme": 4777.42,
        "fib50": 4767.41,
        "fib62": 4765.008,
        "entry_mid": 4766.209,
        "invalid": 4757.4,
        "risk_points": 8.809,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T01:45:00Z",
        "target1": 4775.018,
        "target2": 4783.826,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4757.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-09T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-09T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4763.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4761.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-10T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.555,
        "D_prior_index": 69,
        "H4_prior_index": 415,
        "H1_prior_index": 1586,
        "pre_local_low": 4750.535,
        "confirmation_time": "2026-04-10T02:15:00Z",
        "impulse_extreme": 4746.395,
        "fib50": 4756.975,
        "fib62": 4759.514,
        "entry_mid": 4758.245,
        "invalid": 4767.555,
        "risk_points": 9.31,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T03:05:00Z",
        "target1": 4748.934,
        "target2": 4739.624,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4738.105,
        "D_prior_index": 69,
        "H4_prior_index": 415,
        "H1_prior_index": 1587,
        "pre_local_high": 4777.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4762.11,
        "D_prior_index": 69,
        "H4_prior_index": 415,
        "H1_prior_index": 1588,
        "pre_local_low": 4738.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4769.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4770.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4757.445,
        "D_prior_index": 69,
        "H4_prior_index": 416,
        "H1_prior_index": 1590,
        "pre_local_high": 4770.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4764.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-10T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4769.385,
        "D_prior_index": 69,
        "H4_prior_index": 416,
        "H1_prior_index": 1590,
        "pre_local_low": 4757.445,
        "confirmation_time": "2026-04-10T06:10:00Z",
        "impulse_extreme": 4755.82,
        "fib50": 4762.602,
        "fib62": 4764.23,
        "entry_mid": 4763.416,
        "invalid": 4769.385,
        "risk_points": 5.969,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T11:30:00Z",
        "target1": 4757.448,
        "target2": 4751.479,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T06:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4758.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4741.51,
        "D_prior_index": 69,
        "H4_prior_index": 416,
        "H1_prior_index": 1592,
        "pre_local_high": 4769.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4757.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4747.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4741.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4752.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4753.41,
        "D_prior_index": 69,
        "H4_prior_index": 417,
        "H1_prior_index": 1595,
        "pre_local_low": 4730.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4753.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4770.13,
        "D_prior_index": 69,
        "H4_prior_index": 417,
        "H1_prior_index": 1597,
        "pre_local_low": 4751.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4771.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-10T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4777.795,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1598,
        "pre_local_low": 4757.825,
        "confirmation_time": "2026-04-10T16:00:00Z",
        "impulse_extreme": 4753.45,
        "fib50": 4765.622,
        "fib62": 4768.544,
        "entry_mid": 4767.083,
        "invalid": 4777.795,
        "risk_points": 10.712,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T16:50:00Z",
        "target1": 4756.371,
        "target2": 4745.66,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-10T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4766.07,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1598,
        "pre_local_high": 4782.605,
        "confirmation_time": "2026-04-10T14:15:00Z",
        "impulse_extreme": 4788.895,
        "fib50": 4777.483,
        "fib62": 4774.743,
        "entry_mid": 4776.113,
        "invalid": 4766.07,
        "risk_points": 10.043,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T14:40:00Z",
        "target1": 4786.156,
        "target2": 4796.199,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4780.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4764.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-10T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.98,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1599,
        "pre_local_low": 4764.845,
        "confirmation_time": "2026-04-10T15:35:00Z",
        "impulse_extreme": 4755.41,
        "fib50": 4775.195,
        "fib62": 4779.943,
        "entry_mid": 4777.569,
        "invalid": 4794.98,
        "risk_points": 17.411,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4771.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4769.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4783.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-10T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4787.46,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1600,
        "pre_local_low": 4764.95,
        "confirmation_time": "2026-04-10T15:35:00Z",
        "impulse_extreme": 4755.41,
        "fib50": 4771.435,
        "fib62": 4775.281,
        "entry_mid": 4773.358,
        "invalid": 4787.46,
        "risk_points": 14.102,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-10T18:30:00Z",
        "target1": 4759.256,
        "target2": 4745.154,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4747.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4765.34,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1601,
        "pre_local_low": 4747.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4765.375,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1601,
        "pre_local_low": 4747.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4756.165,
        "D_prior_index": 69,
        "H4_prior_index": 418,
        "H1_prior_index": 1601,
        "pre_local_high": 4787.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4766.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4766.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4768.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4751.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-10T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4770.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-10T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-10T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4760.825,
        "D_prior_index": 69,
        "H4_prior_index": 419,
        "H1_prior_index": 1604,
        "pre_local_high": 4773.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-12T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-12T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-12T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-12T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4660.815,
        "D_prior_index": 70,
        "H4_prior_index": 420,
        "H1_prior_index": 1607,
        "pre_local_low": 4644.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-12T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-12T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4644.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-12T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-12T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4722.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4710.77,
        "D_prior_index": 70,
        "H4_prior_index": 421,
        "H1_prior_index": 1609,
        "pre_local_high": 4722.1,
        "confirmation_time": "2026-04-13T01:50:00Z",
        "impulse_extreme": 4723.785,
        "fib50": 4717.278,
        "fib62": 4715.716,
        "entry_mid": 4716.497,
        "invalid": 4710.77,
        "risk_points": 5.727,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T02:35:00Z",
        "target1": 4722.223,
        "target2": 4727.95,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4710.245,
        "D_prior_index": 70,
        "H4_prior_index": 421,
        "H1_prior_index": 1609,
        "pre_local_high": 4722.1,
        "confirmation_time": "2026-04-13T01:50:00Z",
        "impulse_extreme": 4723.785,
        "fib50": 4717.015,
        "fib62": 4715.39,
        "entry_mid": 4716.203,
        "invalid": 4710.245,
        "risk_points": 5.958,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T02:35:00Z",
        "target1": 4722.16,
        "target2": 4728.118,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4728.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4711.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4721.8,
        "D_prior_index": 70,
        "H4_prior_index": 421,
        "H1_prior_index": 1611,
        "pre_local_low": 4710.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4717.43,
        "D_prior_index": 70,
        "H4_prior_index": 421,
        "H1_prior_index": 1611,
        "pre_local_high": 4727.885,
        "confirmation_time": "2026-04-13T05:55:00Z",
        "impulse_extreme": 4730.91,
        "fib50": 4724.17,
        "fib62": 4722.552,
        "entry_mid": 4723.361,
        "invalid": 4717.43,
        "risk_points": 5.931,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T06:00:00Z",
        "target1": 4729.292,
        "target2": 4735.224,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T04:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4709.215,
        "D_prior_index": 70,
        "H4_prior_index": 421,
        "H1_prior_index": 1612,
        "pre_local_high": 4724.065,
        "confirmation_time": "2026-04-13T05:55:00Z",
        "impulse_extreme": 4730.91,
        "fib50": 4720.062,
        "fib62": 4717.459,
        "entry_mid": 4718.761,
        "invalid": 4709.215,
        "risk_points": 9.546,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T09:05:00Z",
        "target1": 4728.307,
        "target2": 4737.852,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4726.45,
        "D_prior_index": 70,
        "H4_prior_index": 422,
        "H1_prior_index": 1613,
        "pre_local_low": 4708.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4732.79,
        "D_prior_index": 70,
        "H4_prior_index": 422,
        "H1_prior_index": 1614,
        "pre_local_low": 4716.39,
        "confirmation_time": "2026-04-13T09:25:00Z",
        "impulse_extreme": 4714.295,
        "fib50": 4723.542,
        "fib62": 4725.762,
        "entry_mid": 4724.652,
        "invalid": 4732.79,
        "risk_points": 8.138,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T10:50:00Z",
        "target1": 4716.514,
        "target2": 4708.377,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.915,
        "D_prior_index": 70,
        "H4_prior_index": 422,
        "H1_prior_index": 1615,
        "pre_local_low": 4720.65,
        "confirmation_time": "2026-04-13T09:05:00Z",
        "impulse_extreme": 4717.535,
        "fib50": 4725.725,
        "fib62": 4727.691,
        "entry_mid": 4726.708,
        "invalid": 4733.915,
        "risk_points": 7.207,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T11:00:00Z",
        "target1": 4719.501,
        "target2": 4712.293,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4736.475,
        "D_prior_index": 70,
        "H4_prior_index": 422,
        "H1_prior_index": 1616,
        "pre_local_low": 4721.28,
        "confirmation_time": "2026-04-13T09:05:00Z",
        "impulse_extreme": 4717.535,
        "fib50": 4727.005,
        "fib62": 4729.278,
        "entry_mid": 4728.141,
        "invalid": 4736.475,
        "risk_points": 8.334,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T11:05:00Z",
        "target1": 4719.808,
        "target2": 4711.474,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4720.43,
        "D_prior_index": 70,
        "H4_prior_index": 422,
        "H1_prior_index": 1616,
        "pre_local_high": 4740.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4710.605,
        "D_prior_index": 70,
        "H4_prior_index": 423,
        "H1_prior_index": 1617,
        "pre_local_high": 4740.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4703.375,
        "D_prior_index": 70,
        "H4_prior_index": 423,
        "H1_prior_index": 1619,
        "pre_local_high": 4729.23,
        "confirmation_time": "2026-04-13T13:10:00Z",
        "impulse_extreme": 4736.29,
        "fib50": 4719.833,
        "fib62": 4715.883,
        "entry_mid": 4717.858,
        "invalid": 4703.375,
        "risk_points": 14.483,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T14:15:00Z",
        "target1": 4732.34,
        "target2": 4746.823,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4737.36,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1621,
        "pre_local_low": 4703.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4737.66,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1621,
        "pre_local_low": 4703.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4721.125,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1621,
        "pre_local_high": 4740.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4744.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4720.64,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1622,
        "pre_local_high": 4744.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4708.875,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1622,
        "pre_local_high": 4744.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.785,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1622,
        "pre_local_low": 4708.875,
        "confirmation_time": "2026-04-13T15:00:00Z",
        "impulse_extreme": 4705.89,
        "fib50": 4714.837,
        "fib62": 4716.985,
        "entry_mid": 4715.911,
        "invalid": 4723.785,
        "risk_points": 7.874,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T15:35:00Z",
        "target1": 4708.037,
        "target2": 4700.164,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4702.3,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1623,
        "pre_local_high": 4744.64,
        "confirmation_time": "2026-04-13T17:35:00Z",
        "impulse_extreme": 4747.0,
        "fib50": 4724.65,
        "fib62": 4719.286,
        "entry_mid": 4721.968,
        "invalid": 4702.3,
        "risk_points": 19.668,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-13T18:20:00Z",
        "target1": 4741.636,
        "target2": 4761.304,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4709.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4746.27,
        "D_prior_index": 70,
        "H4_prior_index": 424,
        "H1_prior_index": 1624,
        "pre_local_low": 4700.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4730.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4747.58,
        "D_prior_index": 70,
        "H4_prior_index": 425,
        "H1_prior_index": 1627,
        "pre_local_low": 4723.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-13T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4741.87,
        "D_prior_index": 70,
        "H4_prior_index": 425,
        "H1_prior_index": 1628,
        "pre_local_low": 4730.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-13T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4745.84,
        "D_prior_index": 71,
        "H4_prior_index": 426,
        "H1_prior_index": 1629,
        "pre_local_high": 4752.11,
        "confirmation_time": "2026-04-13T22:50:00Z",
        "impulse_extreme": 4755.965,
        "fib50": 4750.903,
        "fib62": 4749.688,
        "entry_mid": 4750.295,
        "invalid": 4745.84,
        "risk_points": 4.455,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-13T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4754.54,
        "D_prior_index": 71,
        "H4_prior_index": 426,
        "H1_prior_index": 1630,
        "pre_local_high": 4765.805,
        "confirmation_time": "2026-04-14T00:30:00Z",
        "impulse_extreme": 4768.385,
        "fib50": 4761.462,
        "fib62": 4759.801,
        "entry_mid": 4760.632,
        "invalid": 4754.54,
        "risk_points": 6.092,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T05:30:00Z",
        "target1": 4766.724,
        "target2": 4772.815,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-13T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-13T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4761.955,
        "D_prior_index": 71,
        "H4_prior_index": 426,
        "H1_prior_index": 1630,
        "pre_local_low": 4745.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4751.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4762.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4764.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4761.79,
        "D_prior_index": 71,
        "H4_prior_index": 427,
        "H1_prior_index": 1632,
        "pre_local_high": 4777.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T01:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4774.015,
        "D_prior_index": 71,
        "H4_prior_index": 427,
        "H1_prior_index": 1632,
        "pre_local_low": 4753.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4772.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4762.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4765.65,
        "D_prior_index": 71,
        "H4_prior_index": 427,
        "H1_prior_index": 1634,
        "pre_local_high": 4777.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4772.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.095,
        "D_prior_index": 71,
        "H4_prior_index": 427,
        "H1_prior_index": 1635,
        "pre_local_high": 4777.305,
        "confirmation_time": "2026-04-14T06:50:00Z",
        "impulse_extreme": 4781.47,
        "fib50": 4774.283,
        "fib62": 4772.557,
        "entry_mid": 4773.42,
        "invalid": 4767.095,
        "risk_points": 6.325,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T07:20:00Z",
        "target1": 4779.745,
        "target2": 4786.07,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4761.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4769.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4780.68,
        "D_prior_index": 71,
        "H4_prior_index": 428,
        "H1_prior_index": 1638,
        "pre_local_low": 4763.515,
        "confirmation_time": "2026-04-14T10:35:00Z",
        "impulse_extreme": 4751.22,
        "fib50": 4765.95,
        "fib62": 4769.485,
        "entry_mid": 4767.718,
        "invalid": 4780.68,
        "risk_points": 12.962,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T10:40:00Z",
        "target1": 4754.755,
        "target2": 4741.793,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4783.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4790.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4781.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4780.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.17,
        "D_prior_index": 71,
        "H4_prior_index": 429,
        "H1_prior_index": 1640,
        "pre_local_low": 4767.855,
        "confirmation_time": "2026-04-14T10:35:00Z",
        "impulse_extreme": 4751.22,
        "fib50": 4769.695,
        "fib62": 4774.129,
        "entry_mid": 4771.912,
        "invalid": 4788.17,
        "risk_points": 16.258,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T10:45:00Z",
        "target1": 4755.654,
        "target2": 4739.396,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.405,
        "D_prior_index": 71,
        "H4_prior_index": 429,
        "H1_prior_index": 1640,
        "pre_local_low": 4771.97,
        "confirmation_time": "2026-04-14T10:35:00Z",
        "impulse_extreme": 4751.22,
        "fib50": 4770.312,
        "fib62": 4774.895,
        "entry_mid": 4772.604,
        "invalid": 4789.405,
        "risk_points": 16.801,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T10:45:00Z",
        "target1": 4755.802,
        "target2": 4739.001,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4782.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4784.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4788.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4770.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4782.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-14T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4762.64,
        "D_prior_index": 71,
        "H4_prior_index": 429,
        "H1_prior_index": 1643,
        "pre_local_high": 4784.655,
        "confirmation_time": "2026-04-14T13:15:00Z",
        "impulse_extreme": 4787.72,
        "fib50": 4775.18,
        "fib62": 4772.17,
        "entry_mid": 4773.675,
        "invalid": 4762.64,
        "risk_points": 11.035,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4776.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-14T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4762.36,
        "D_prior_index": 71,
        "H4_prior_index": 429,
        "H1_prior_index": 1643,
        "pre_local_high": 4783.165,
        "confirmation_time": "2026-04-14T13:15:00Z",
        "impulse_extreme": 4787.72,
        "fib50": 4775.04,
        "fib62": 4771.997,
        "entry_mid": 4773.518,
        "invalid": 4762.36,
        "risk_points": 11.158,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-14T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4780.32,
        "D_prior_index": 71,
        "H4_prior_index": 430,
        "H1_prior_index": 1644,
        "pre_local_high": 4794.325,
        "confirmation_time": "2026-04-14T13:55:00Z",
        "impulse_extreme": 4796.59,
        "fib50": 4788.455,
        "fib62": 4786.503,
        "entry_mid": 4787.479,
        "invalid": 4780.32,
        "risk_points": 7.159,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4803.645,
        "D_prior_index": 71,
        "H4_prior_index": 430,
        "H1_prior_index": 1645,
        "pre_local_low": 4762.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4818.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-14T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4795.38,
        "D_prior_index": 71,
        "H4_prior_index": 430,
        "H1_prior_index": 1645,
        "pre_local_high": 4818.33,
        "confirmation_time": "2026-04-14T17:05:00Z",
        "impulse_extreme": 4833.165,
        "fib50": 4814.273,
        "fib62": 4809.738,
        "entry_mid": 4812.005,
        "invalid": 4795.38,
        "risk_points": 16.625,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4806.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4816.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-14T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.255,
        "D_prior_index": 71,
        "H4_prior_index": 430,
        "H1_prior_index": 1647,
        "pre_local_high": 4818.33,
        "confirmation_time": "2026-04-14T17:05:00Z",
        "impulse_extreme": 4833.165,
        "fib50": 4819.21,
        "fib62": 4815.861,
        "entry_mid": 4817.535,
        "invalid": 4805.255,
        "risk_points": 12.28,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4820.34,
        "D_prior_index": 71,
        "H4_prior_index": 430,
        "H1_prior_index": 1647,
        "pre_local_low": 4791.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4843.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4833.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4830.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4843.73,
        "D_prior_index": 71,
        "H4_prior_index": 431,
        "H1_prior_index": 1650,
        "pre_local_low": 4830.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-14T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4846.37,
        "D_prior_index": 71,
        "H4_prior_index": 431,
        "H1_prior_index": 1651,
        "pre_local_low": 4830.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4843.41,
        "D_prior_index": 71,
        "H4_prior_index": 431,
        "H1_prior_index": 1651,
        "pre_local_low": 4838.58,
        "confirmation_time": "2026-04-14T22:15:00Z",
        "impulse_extreme": 4837.14,
        "fib50": 4840.275,
        "fib62": 4841.027,
        "entry_mid": 4840.651,
        "invalid": 4843.41,
        "risk_points": 2.759,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-14T22:20:00Z",
        "target1": 4837.892,
        "target2": 4835.134,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-14T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4844.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-14T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-14T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4844.16,
        "D_prior_index": 72,
        "H4_prior_index": 432,
        "H1_prior_index": 1653,
        "pre_local_low": 4833.195,
        "confirmation_time": "2026-04-15T00:15:00Z",
        "impulse_extreme": 4828.815,
        "fib50": 4836.487,
        "fib62": 4838.329,
        "entry_mid": 4837.408,
        "invalid": 4844.16,
        "risk_points": 6.752,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T00:25:00Z",
        "target1": 4830.656,
        "target2": 4823.905,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4828.625,
        "D_prior_index": 72,
        "H4_prior_index": 432,
        "H1_prior_index": 1654,
        "pre_local_high": 4844.315,
        "confirmation_time": "2026-04-15T01:10:00Z",
        "impulse_extreme": 4852.775,
        "fib50": 4840.7,
        "fib62": 4837.802,
        "entry_mid": 4839.251,
        "invalid": 4828.625,
        "risk_points": 10.626,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T01:45:00Z",
        "target1": 4849.877,
        "target2": 4860.503,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4827.285,
        "D_prior_index": 72,
        "H4_prior_index": 432,
        "H1_prior_index": 1654,
        "pre_local_high": 4844.315,
        "confirmation_time": "2026-04-15T01:10:00Z",
        "impulse_extreme": 4852.775,
        "fib50": 4840.03,
        "fib62": 4836.971,
        "entry_mid": 4838.501,
        "invalid": 4827.285,
        "risk_points": 11.216,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T01:45:00Z",
        "target1": 4849.716,
        "target2": 4860.932,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4828.335,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1655,
        "pre_local_high": 4844.16,
        "confirmation_time": "2026-04-15T01:10:00Z",
        "impulse_extreme": 4852.775,
        "fib50": 4840.555,
        "fib62": 4837.622,
        "entry_mid": 4839.089,
        "invalid": 4828.335,
        "risk_points": 10.754,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T01:45:00Z",
        "target1": 4849.842,
        "target2": 4860.596,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4871.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4839.645,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1655,
        "pre_local_high": 4871.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-15T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4853.445,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1656,
        "pre_local_low": 4827.285,
        "confirmation_time": "2026-04-15T02:50:00Z",
        "impulse_extreme": 4822.395,
        "fib50": 4837.92,
        "fib62": 4841.646,
        "entry_mid": 4839.783,
        "invalid": 4853.445,
        "risk_points": 13.662,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4820.715,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1656,
        "pre_local_high": 4871.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4816.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4829.725,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1657,
        "pre_local_low": 4816.915,
        "confirmation_time": "2026-04-15T05:40:00Z",
        "impulse_extreme": 4812.735,
        "fib50": 4821.23,
        "fib62": 4823.269,
        "entry_mid": 4822.249,
        "invalid": 4829.725,
        "risk_points": 7.476,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T05:50:00Z",
        "target1": 4814.774,
        "target2": 4807.298,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4826.715,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1658,
        "pre_local_low": 4816.915,
        "confirmation_time": "2026-04-15T05:40:00Z",
        "impulse_extreme": 4812.735,
        "fib50": 4819.725,
        "fib62": 4821.403,
        "entry_mid": 4820.564,
        "invalid": 4826.715,
        "risk_points": 6.151,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T05:45:00Z",
        "target1": 4814.413,
        "target2": 4808.261,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4827.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4821.53,
        "D_prior_index": 72,
        "H4_prior_index": 433,
        "H1_prior_index": 1658,
        "pre_local_high": 4829.725,
        "confirmation_time": "2026-04-15T05:15:00Z",
        "impulse_extreme": 4830.53,
        "fib50": 4826.03,
        "fib62": 4824.95,
        "entry_mid": 4825.49,
        "invalid": 4821.53,
        "risk_points": 3.96,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T05:20:00Z",
        "target1": 4829.45,
        "target2": 4833.41,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4830.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4825.04,
        "D_prior_index": 72,
        "H4_prior_index": 434,
        "H1_prior_index": 1660,
        "pre_local_low": 4812.735,
        "confirmation_time": "2026-04-15T06:55:00Z",
        "impulse_extreme": 4811.31,
        "fib50": 4818.175,
        "fib62": 4819.823,
        "entry_mid": 4818.999,
        "invalid": 4825.04,
        "risk_points": 6.041,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T08:55:00Z",
        "target1": 4812.958,
        "target2": 4806.916,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4811.445,
        "D_prior_index": 72,
        "H4_prior_index": 434,
        "H1_prior_index": 1660,
        "pre_local_high": 4830.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4811.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T06:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4822.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4804.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4806.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4804.595,
        "D_prior_index": 72,
        "H4_prior_index": 434,
        "H1_prior_index": 1662,
        "pre_local_high": 4822.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4814.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.56,
        "D_prior_index": 72,
        "H4_prior_index": 434,
        "H1_prior_index": 1662,
        "pre_local_high": 4820.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4786.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.275,
        "D_prior_index": 72,
        "H4_prior_index": 435,
        "H1_prior_index": 1664,
        "pre_local_low": 4786.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4795.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4808.96,
        "D_prior_index": 72,
        "H4_prior_index": 435,
        "H1_prior_index": 1665,
        "pre_local_low": 4790.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4816.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4808.515,
        "D_prior_index": 72,
        "H4_prior_index": 435,
        "H1_prior_index": 1666,
        "pre_local_high": 4816.37,
        "confirmation_time": "2026-04-15T13:20:00Z",
        "impulse_extreme": 4819.755,
        "fib50": 4814.135,
        "fib62": 4812.786,
        "entry_mid": 4813.461,
        "invalid": 4808.515,
        "risk_points": 4.946,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T14:50:00Z",
        "target1": 4818.406,
        "target2": 4823.352,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-15T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4816.505,
        "D_prior_index": 72,
        "H4_prior_index": 436,
        "H1_prior_index": 1667,
        "pre_local_low": 4802.81,
        "confirmation_time": "2026-04-15T15:25:00Z",
        "impulse_extreme": 4797.705,
        "fib50": 4807.105,
        "fib62": 4809.361,
        "entry_mid": 4808.233,
        "invalid": 4816.505,
        "risk_points": 8.272,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-15T15:45:00Z",
        "target1": 4799.961,
        "target2": 4791.689,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-15T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4825.55,
        "D_prior_index": 72,
        "H4_prior_index": 436,
        "H1_prior_index": 1667,
        "pre_local_low": 4807.025,
        "confirmation_time": "2026-04-15T15:20:00Z",
        "impulse_extreme": 4802.98,
        "fib50": 4814.265,
        "fib62": 4816.973,
        "entry_mid": 4815.619,
        "invalid": 4825.55,
        "risk_points": 9.931,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-15T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4830.615,
        "D_prior_index": 72,
        "H4_prior_index": 436,
        "H1_prior_index": 1668,
        "pre_local_low": 4808.515,
        "confirmation_time": "2026-04-15T15:05:00Z",
        "impulse_extreme": 4800.11,
        "fib50": 4815.362,
        "fib62": 4819.023,
        "entry_mid": 4817.193,
        "invalid": 4830.615,
        "risk_points": 13.422,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4787.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4807.685,
        "D_prior_index": 72,
        "H4_prior_index": 436,
        "H1_prior_index": 1669,
        "pre_local_low": 4787.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4800.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4808.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4790.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4790.24,
        "D_prior_index": 72,
        "H4_prior_index": 437,
        "H1_prior_index": 1672,
        "pre_local_high": 4812.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4803.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4797.805,
        "D_prior_index": 72,
        "H4_prior_index": 437,
        "H1_prior_index": 1673,
        "pre_local_high": 4803.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4787.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4799.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-15T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4803.575,
        "D_prior_index": 73,
        "H4_prior_index": 438,
        "H1_prior_index": 1675,
        "pre_local_low": 4787.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-15T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-15T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4822.525,
        "D_prior_index": 73,
        "H4_prior_index": 438,
        "H1_prior_index": 1677,
        "pre_local_high": 4831.215,
        "confirmation_time": "2026-04-16T00:40:00Z",
        "impulse_extreme": 4837.81,
        "fib50": 4830.167,
        "fib62": 4828.333,
        "entry_mid": 4829.25,
        "invalid": 4822.525,
        "risk_points": 6.725,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T01:00:00Z",
        "target1": 4835.976,
        "target2": 4842.701,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4831.215,
        "D_prior_index": 73,
        "H4_prior_index": 438,
        "H1_prior_index": 1677,
        "pre_local_low": 4799.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T00:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4830.21,
        "D_prior_index": 73,
        "H4_prior_index": 439,
        "H1_prior_index": 1681,
        "pre_local_low": 4812.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4824.945,
        "D_prior_index": 73,
        "H4_prior_index": 439,
        "H1_prior_index": 1681,
        "pre_local_high": 4830.21,
        "confirmation_time": "2026-04-16T04:40:00Z",
        "impulse_extreme": 4831.035,
        "fib50": 4827.99,
        "fib62": 4827.259,
        "entry_mid": 4827.625,
        "invalid": 4824.945,
        "risk_points": 2.68,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T05:30:00Z",
        "target1": 4830.304,
        "target2": 4832.984,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4831.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4831.025,
        "D_prior_index": 73,
        "H4_prior_index": 440,
        "H1_prior_index": 1684,
        "pre_local_low": 4814.46,
        "confirmation_time": "2026-04-16T08:00:00Z",
        "impulse_extreme": 4813.155,
        "fib50": 4822.09,
        "fib62": 4824.234,
        "entry_mid": 4823.162,
        "invalid": 4831.025,
        "risk_points": 7.863,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T11:55:00Z",
        "target1": 4815.299,
        "target2": 4807.437,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4817.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4830.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4806.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4811.3,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1686,
        "pre_local_high": 4830.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4807.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4815.43,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1686,
        "pre_local_low": 4806.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4815.605,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1687,
        "pre_local_low": 4806.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.27,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1687,
        "pre_local_high": 4818.11,
        "confirmation_time": "2026-04-16T11:00:00Z",
        "impulse_extreme": 4820.26,
        "fib50": 4812.765,
        "fib62": 4810.966,
        "entry_mid": 4811.866,
        "invalid": 4805.27,
        "risk_points": 6.596,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T12:10:00Z",
        "target1": 4818.461,
        "target2": 4825.057,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.165,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1687,
        "pre_local_high": 4818.11,
        "confirmation_time": "2026-04-16T11:00:00Z",
        "impulse_extreme": 4820.26,
        "fib50": 4812.712,
        "fib62": 4810.901,
        "entry_mid": 4811.807,
        "invalid": 4805.165,
        "risk_points": 6.642,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T12:10:00Z",
        "target1": 4818.449,
        "target2": 4825.09,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4812.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4811.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4823.14,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1689,
        "pre_local_low": 4805.165,
        "confirmation_time": "2026-04-16T13:50:00Z",
        "impulse_extreme": 4790.295,
        "fib50": 4806.718,
        "fib62": 4810.659,
        "entry_mid": 4808.688,
        "invalid": 4823.14,
        "risk_points": 14.452,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T15:05:00Z",
        "target1": 4794.236,
        "target2": 4779.785,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4811.865,
        "D_prior_index": 73,
        "H4_prior_index": 441,
        "H1_prior_index": 1689,
        "pre_local_high": 4823.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4820.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4823.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4812.645,
        "D_prior_index": 73,
        "H4_prior_index": 442,
        "H1_prior_index": 1690,
        "pre_local_high": 4823.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4824.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4811.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4810.225,
        "D_prior_index": 73,
        "H4_prior_index": 442,
        "H1_prior_index": 1693,
        "pre_local_low": 4772.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4785.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4795.455,
        "D_prior_index": 73,
        "H4_prior_index": 443,
        "H1_prior_index": 1694,
        "pre_local_low": 4785.245,
        "confirmation_time": "2026-04-16T17:25:00Z",
        "impulse_extreme": 4784.75,
        "fib50": 4790.102,
        "fib62": 4791.387,
        "entry_mid": 4790.745,
        "invalid": 4795.455,
        "risk_points": 4.71,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T17:55:00Z",
        "target1": 4786.035,
        "target2": 4781.324,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4781.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4791.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.45,
        "D_prior_index": 73,
        "H4_prior_index": 443,
        "H1_prior_index": 1695,
        "pre_local_low": 4781.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4786.8,
        "D_prior_index": 73,
        "H4_prior_index": 443,
        "H1_prior_index": 1695,
        "pre_local_high": 4795.455,
        "confirmation_time": "2026-04-16T19:40:00Z",
        "impulse_extreme": 4797.94,
        "fib50": 4792.37,
        "fib62": 4791.033,
        "entry_mid": 4791.702,
        "invalid": 4786.8,
        "risk_points": 4.902,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-16T20:00:00Z",
        "target1": 4796.603,
        "target2": 4801.505,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4792.775,
        "D_prior_index": 73,
        "H4_prior_index": 443,
        "H1_prior_index": 1695,
        "pre_local_low": 4781.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4795.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-16T19:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4798.67,
        "D_prior_index": 73,
        "H4_prior_index": 443,
        "H1_prior_index": 1696,
        "pre_local_low": 4786.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4786.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4790.925,
        "D_prior_index": 74,
        "H4_prior_index": 444,
        "H1_prior_index": 1698,
        "pre_local_high": 4797.995,
        "confirmation_time": "2026-04-17T00:40:00Z",
        "impulse_extreme": 4798.83,
        "fib50": 4794.878,
        "fib62": 4793.929,
        "entry_mid": 4794.403,
        "invalid": 4790.925,
        "risk_points": 3.478,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T00:50:00Z",
        "target1": 4797.881,
        "target2": 4801.36,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4796.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4797.015,
        "D_prior_index": 74,
        "H4_prior_index": 444,
        "H1_prior_index": 1698,
        "pre_local_low": 4786.45,
        "confirmation_time": "2026-04-17T01:05:00Z",
        "impulse_extreme": 4783.4,
        "fib50": 4790.208,
        "fib62": 4791.841,
        "entry_mid": 4791.024,
        "invalid": 4797.015,
        "risk_points": 5.991,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T01:55:00Z",
        "target1": 4785.034,
        "target2": 4779.043,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-16T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4797.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4792.495,
        "D_prior_index": 74,
        "H4_prior_index": 444,
        "H1_prior_index": 1699,
        "pre_local_high": 4797.995,
        "confirmation_time": "2026-04-17T00:40:00Z",
        "impulse_extreme": 4798.83,
        "fib50": 4795.663,
        "fib62": 4794.902,
        "entry_mid": 4795.282,
        "invalid": 4792.495,
        "risk_points": 2.787,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T00:50:00Z",
        "target1": 4798.07,
        "target2": 4800.857,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-16T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-16T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4796.79,
        "D_prior_index": 74,
        "H4_prior_index": 444,
        "H1_prior_index": 1699,
        "pre_local_low": 4790.925,
        "confirmation_time": "2026-04-17T00:00:00Z",
        "impulse_extreme": 4787.915,
        "fib50": 4792.352,
        "fib62": 4793.417,
        "entry_mid": 4792.885,
        "invalid": 4796.79,
        "risk_points": 3.905,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T00:25:00Z",
        "target1": 4788.98,
        "target2": 4785.075,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T00:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4801.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.845,
        "D_prior_index": 74,
        "H4_prior_index": 445,
        "H1_prior_index": 1701,
        "pre_local_high": 4801.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.385,
        "D_prior_index": 74,
        "H4_prior_index": 445,
        "H1_prior_index": 1702,
        "pre_local_high": 4801.3,
        "confirmation_time": "2026-04-17T04:55:00Z",
        "impulse_extreme": 4804.48,
        "fib50": 4796.432,
        "fib62": 4794.501,
        "entry_mid": 4795.467,
        "invalid": 4788.385,
        "risk_points": 7.082,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T05:40:00Z",
        "target1": 4802.549,
        "target2": 4809.63,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4796.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4792.71,
        "D_prior_index": 74,
        "H4_prior_index": 445,
        "H1_prior_index": 1704,
        "pre_local_high": 4798.405,
        "confirmation_time": "2026-04-17T04:35:00Z",
        "impulse_extreme": 4799.72,
        "fib50": 4796.215,
        "fib62": 4795.374,
        "entry_mid": 4795.794,
        "invalid": 4792.71,
        "risk_points": 3.084,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T05:40:00Z",
        "target1": 4798.879,
        "target2": 4801.963,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4805.31,
        "D_prior_index": 74,
        "H4_prior_index": 446,
        "H1_prior_index": 1705,
        "pre_local_low": 4792.71,
        "confirmation_time": "2026-04-17T06:05:00Z",
        "impulse_extreme": 4790.04,
        "fib50": 4797.675,
        "fib62": 4799.507,
        "entry_mid": 4798.591,
        "invalid": 4805.31,
        "risk_points": 6.719,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T09:00:00Z",
        "target1": 4791.872,
        "target2": 4785.154,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4779.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4787.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4791.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T07:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4782.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T07:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4778.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4791.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4797.085,
        "D_prior_index": 74,
        "H4_prior_index": 446,
        "H1_prior_index": 1708,
        "pre_local_low": 4778.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4800.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4792.095,
        "D_prior_index": 74,
        "H4_prior_index": 447,
        "H1_prior_index": 1709,
        "pre_local_high": 4800.995,
        "confirmation_time": "2026-04-17T11:45:00Z",
        "impulse_extreme": 4811.82,
        "fib50": 4801.958,
        "fib62": 4799.591,
        "entry_mid": 4800.774,
        "invalid": 4792.095,
        "risk_points": 8.679,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T11:50:00Z",
        "target1": 4809.453,
        "target2": 4818.132,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4799.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4787.28,
        "D_prior_index": 74,
        "H4_prior_index": 447,
        "H1_prior_index": 1710,
        "pre_local_high": 4800.995,
        "confirmation_time": "2026-04-17T11:45:00Z",
        "impulse_extreme": 4811.82,
        "fib50": 4799.55,
        "fib62": 4796.605,
        "entry_mid": 4798.078,
        "invalid": 4787.28,
        "risk_points": 10.798,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T11:55:00Z",
        "target1": 4808.875,
        "target2": 4819.673,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.085,
        "D_prior_index": 74,
        "H4_prior_index": 447,
        "H1_prior_index": 1710,
        "pre_local_low": 4785.78,
        "confirmation_time": "2026-04-17T10:35:00Z",
        "impulse_extreme": 4785.43,
        "fib50": 4789.757,
        "fib62": 4790.796,
        "entry_mid": 4790.277,
        "invalid": 4794.085,
        "risk_points": 3.808,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T11:00:00Z",
        "target1": 4786.469,
        "target2": 4782.66,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4782.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.86,
        "D_prior_index": 74,
        "H4_prior_index": 447,
        "H1_prior_index": 1711,
        "pre_local_low": 4782.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-17T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4797.68,
        "D_prior_index": 74,
        "H4_prior_index": 447,
        "H1_prior_index": 1712,
        "pre_local_high": 4811.82,
        "confirmation_time": "2026-04-17T12:20:00Z",
        "impulse_extreme": 4812.505,
        "fib50": 4805.093,
        "fib62": 4803.314,
        "entry_mid": 4804.203,
        "invalid": 4797.68,
        "risk_points": 6.523,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4848.51,
        "D_prior_index": 74,
        "H4_prior_index": 448,
        "H1_prior_index": 1713,
        "pre_local_high": 4891.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4885.53,
        "D_prior_index": 74,
        "H4_prior_index": 448,
        "H1_prior_index": 1714,
        "pre_local_low": 4804.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4883.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4873.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4873.535,
        "D_prior_index": 74,
        "H4_prior_index": 448,
        "H1_prior_index": 1716,
        "pre_local_low": 4855.065,
        "confirmation_time": "2026-04-17T17:20:00Z",
        "impulse_extreme": 4853.79,
        "fib50": 4863.663,
        "fib62": 4866.032,
        "entry_mid": 4864.847,
        "invalid": 4873.535,
        "risk_points": 8.688,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T18:00:00Z",
        "target1": 4856.159,
        "target2": 4847.472,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4867.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-17T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4869.665,
        "D_prior_index": 74,
        "H4_prior_index": 449,
        "H1_prior_index": 1717,
        "pre_local_low": 4855.065,
        "confirmation_time": "2026-04-17T17:20:00Z",
        "impulse_extreme": 4853.79,
        "fib50": 4861.727,
        "fib62": 4863.632,
        "entry_mid": 4862.68,
        "invalid": 4869.665,
        "risk_points": 6.985,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-17T17:30:00Z",
        "target1": 4855.695,
        "target2": 4848.71,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4853.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T17:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4863.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-17T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4866.49,
        "D_prior_index": 74,
        "H4_prior_index": 449,
        "H1_prior_index": 1718,
        "pre_local_low": 4853.79,
        "confirmation_time": "2026-04-17T20:00:00Z",
        "impulse_extreme": 4850.045,
        "fib50": 4858.267,
        "fib62": 4860.241,
        "entry_mid": 4859.254,
        "invalid": 4866.49,
        "risk_points": 7.236,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4858.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-17T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4868.11,
        "D_prior_index": 74,
        "H4_prior_index": 449,
        "H1_prior_index": 1718,
        "pre_local_low": 4853.79,
        "confirmation_time": "2026-04-17T20:00:00Z",
        "impulse_extreme": 4850.045,
        "fib50": 4859.077,
        "fib62": 4861.245,
        "entry_mid": 4860.161,
        "invalid": 4868.11,
        "risk_points": 7.949,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-17T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4853.86,
        "D_prior_index": 74,
        "H4_prior_index": 449,
        "H1_prior_index": 1719,
        "pre_local_high": 4868.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-17T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-17T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4844.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-19T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-19T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.97,
        "D_prior_index": 75,
        "H4_prior_index": 450,
        "H1_prior_index": 1721,
        "pre_local_low": 4771.055,
        "confirmation_time": "2026-04-19T23:20:00Z",
        "impulse_extreme": 4768.805,
        "fib50": 4781.888,
        "fib62": 4785.027,
        "entry_mid": 4783.457,
        "invalid": 4794.97,
        "risk_points": 11.513,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T01:00:00Z",
        "target1": 4771.945,
        "target2": 4760.432,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-19T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-19T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4777.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-19T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-19T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4736.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4768.345,
        "D_prior_index": 75,
        "H4_prior_index": 450,
        "H1_prior_index": 1723,
        "pre_local_low": 4736.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-20T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4759.82,
        "D_prior_index": 75,
        "H4_prior_index": 450,
        "H1_prior_index": 1723,
        "pre_local_high": 4778.955,
        "confirmation_time": "2026-04-20T01:00:00Z",
        "impulse_extreme": 4788.915,
        "fib50": 4774.368,
        "fib62": 4770.876,
        "entry_mid": 4772.622,
        "invalid": 4759.82,
        "risk_points": 12.802,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4814.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4793.26,
        "D_prior_index": 75,
        "H4_prior_index": 451,
        "H1_prior_index": 1725,
        "pre_local_high": 4814.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4798.415,
        "D_prior_index": 75,
        "H4_prior_index": 451,
        "H1_prior_index": 1726,
        "pre_local_low": 4792.045,
        "confirmation_time": "2026-04-20T03:10:00Z",
        "impulse_extreme": 4790.49,
        "fib50": 4794.452,
        "fib62": 4795.404,
        "entry_mid": 4794.928,
        "invalid": 4798.415,
        "risk_points": 3.487,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T03:20:00Z",
        "target1": 4791.441,
        "target2": 4787.954,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4788.875,
        "D_prior_index": 75,
        "H4_prior_index": 451,
        "H1_prior_index": 1726,
        "pre_local_high": 4814.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4796.855,
        "D_prior_index": 75,
        "H4_prior_index": 451,
        "H1_prior_index": 1726,
        "pre_local_low": 4788.875,
        "confirmation_time": "2026-04-20T04:40:00Z",
        "impulse_extreme": 4787.245,
        "fib50": 4792.05,
        "fib62": 4793.203,
        "entry_mid": 4792.627,
        "invalid": 4796.855,
        "risk_points": 4.228,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T04:45:00Z",
        "target1": 4788.398,
        "target2": 4784.17,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.29,
        "D_prior_index": 75,
        "H4_prior_index": 451,
        "H1_prior_index": 1726,
        "pre_local_high": 4805.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4795.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4796.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.265,
        "D_prior_index": 75,
        "H4_prior_index": 452,
        "H1_prior_index": 1729,
        "pre_local_low": 4779.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4784.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4792.07,
        "D_prior_index": 75,
        "H4_prior_index": 452,
        "H1_prior_index": 1729,
        "pre_local_low": 4779.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4785.64,
        "D_prior_index": 75,
        "H4_prior_index": 452,
        "H1_prior_index": 1729,
        "pre_local_high": 4796.36,
        "confirmation_time": "2026-04-20T07:00:00Z",
        "impulse_extreme": 4801.635,
        "fib50": 4793.638,
        "fib62": 4791.718,
        "entry_mid": 4792.678,
        "invalid": 4785.64,
        "risk_points": 7.038,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T07:30:00Z",
        "target1": 4799.716,
        "target2": 4806.753,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4805.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4790.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4786.16,
        "D_prior_index": 75,
        "H4_prior_index": 452,
        "H1_prior_index": 1731,
        "pre_local_high": 4805.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4798.075,
        "D_prior_index": 75,
        "H4_prior_index": 453,
        "H1_prior_index": 1732,
        "pre_local_low": 4786.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4783.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4797.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4799.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4801.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4795.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-20T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.45,
        "D_prior_index": 75,
        "H4_prior_index": 453,
        "H1_prior_index": 1733,
        "pre_local_high": 4801.045,
        "confirmation_time": "2026-04-20T11:45:00Z",
        "impulse_extreme": 4802.34,
        "fib50": 4798.395,
        "fib62": 4797.448,
        "entry_mid": 4797.922,
        "invalid": 4794.45,
        "risk_points": 3.472,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4786.8,
        "D_prior_index": 75,
        "H4_prior_index": 453,
        "H1_prior_index": 1734,
        "pre_local_high": 4801.045,
        "confirmation_time": "2026-04-20T11:45:00Z",
        "impulse_extreme": 4802.34,
        "fib50": 4794.57,
        "fib62": 4792.705,
        "entry_mid": 4793.638,
        "invalid": 4786.8,
        "risk_points": 6.838,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T14:50:00Z",
        "target1": 4800.475,
        "target2": 4807.313,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4822.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4799.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4799.695,
        "D_prior_index": 75,
        "H4_prior_index": 454,
        "H1_prior_index": 1736,
        "pre_local_high": 4822.175,
        "confirmation_time": "2026-04-20T13:25:00Z",
        "impulse_extreme": 4825.905,
        "fib50": 4812.8,
        "fib62": 4809.655,
        "entry_mid": 4811.227,
        "invalid": 4799.695,
        "risk_points": 11.532,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T14:00:00Z",
        "target1": 4822.76,
        "target2": 4834.292,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4826.355,
        "D_prior_index": 75,
        "H4_prior_index": 454,
        "H1_prior_index": 1736,
        "pre_local_low": 4799.125,
        "confirmation_time": "2026-04-20T15:00:00Z",
        "impulse_extreme": 4796.55,
        "fib50": 4811.452,
        "fib62": 4815.029,
        "entry_mid": 4813.241,
        "invalid": 4826.355,
        "risk_points": 13.114,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T17:30:00Z",
        "target1": 4800.127,
        "target2": 4787.012,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4827.695,
        "D_prior_index": 75,
        "H4_prior_index": 454,
        "H1_prior_index": 1737,
        "pre_local_low": 4799.695,
        "confirmation_time": "2026-04-20T15:00:00Z",
        "impulse_extreme": 4796.55,
        "fib50": 4812.122,
        "fib62": 4815.86,
        "entry_mid": 4813.991,
        "invalid": 4827.695,
        "risk_points": 13.704,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-20T17:40:00Z",
        "target1": 4800.287,
        "target2": 4786.584,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4795.625,
        "D_prior_index": 75,
        "H4_prior_index": 454,
        "H1_prior_index": 1738,
        "pre_local_high": 4827.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4794.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4801.98,
        "D_prior_index": 75,
        "H4_prior_index": 454,
        "H1_prior_index": 1739,
        "pre_local_low": 4792.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4811.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4805.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4812.27,
        "D_prior_index": 75,
        "H4_prior_index": 455,
        "H1_prior_index": 1740,
        "pre_local_low": 4792.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4811.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4815.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4816.515,
        "D_prior_index": 75,
        "H4_prior_index": 455,
        "H1_prior_index": 1741,
        "pre_local_low": 4805.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4816.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-20T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4812.3,
        "D_prior_index": 75,
        "H4_prior_index": 455,
        "H1_prior_index": 1743,
        "pre_local_high": 4821.425,
        "confirmation_time": "2026-04-20T22:00:00Z",
        "impulse_extreme": 4825.62,
        "fib50": 4818.96,
        "fib62": 4817.362,
        "entry_mid": 4818.161,
        "invalid": 4812.3,
        "risk_points": 5.861,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-21T00:30:00Z",
        "target1": 4824.022,
        "target2": 4829.882,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4817.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4817.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4833.405,
        "D_prior_index": 76,
        "H4_prior_index": 456,
        "H1_prior_index": 1744,
        "pre_local_low": 4810.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4825.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4831.965,
        "D_prior_index": 76,
        "H4_prior_index": 456,
        "H1_prior_index": 1744,
        "pre_local_low": 4812.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4824.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-20T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4823.975,
        "D_prior_index": 76,
        "H4_prior_index": 456,
        "H1_prior_index": 1745,
        "pre_local_high": 4833.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-20T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-20T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4823.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4817.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4826.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4819.07,
        "D_prior_index": 76,
        "H4_prior_index": 457,
        "H1_prior_index": 1747,
        "pre_local_low": 4813.22,
        "confirmation_time": "2026-04-21T01:45:00Z",
        "impulse_extreme": 4810.265,
        "fib50": 4814.667,
        "fib62": 4815.724,
        "entry_mid": 4815.196,
        "invalid": 4819.07,
        "risk_points": 3.874,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4805.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4803.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4802.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4808.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4793.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.79,
        "D_prior_index": 76,
        "H4_prior_index": 457,
        "H1_prior_index": 1750,
        "pre_local_high": 4808.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4785.97,
        "D_prior_index": 76,
        "H4_prior_index": 458,
        "H1_prior_index": 1751,
        "pre_local_high": 4800.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4785.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4775.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4775.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4774.8,
        "D_prior_index": 76,
        "H4_prior_index": 458,
        "H1_prior_index": 1752,
        "pre_local_high": 4797.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-21T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4783.57,
        "D_prior_index": 76,
        "H4_prior_index": 458,
        "H1_prior_index": 1752,
        "pre_local_low": 4775.33,
        "confirmation_time": "2026-04-21T07:00:00Z",
        "impulse_extreme": 4772.885,
        "fib50": 4778.227,
        "fib62": 4779.51,
        "entry_mid": 4778.869,
        "invalid": 4783.57,
        "risk_points": 4.701,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-21T07:05:00Z",
        "target1": 4774.167,
        "target2": 4769.466,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4772.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4785.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4787.735,
        "D_prior_index": 76,
        "H4_prior_index": 458,
        "H1_prior_index": 1753,
        "pre_local_low": 4772.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4792.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T08:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4789.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-21T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4781.29,
        "D_prior_index": 76,
        "H4_prior_index": 459,
        "H1_prior_index": 1755,
        "pre_local_high": 4793.22,
        "confirmation_time": "2026-04-21T11:45:00Z",
        "impulse_extreme": 4798.03,
        "fib50": 4789.66,
        "fib62": 4787.651,
        "entry_mid": 4788.656,
        "invalid": 4781.29,
        "risk_points": 7.366,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-21T12:15:00Z",
        "target1": 4796.021,
        "target2": 4803.387,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4788.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4789.79,
        "D_prior_index": 76,
        "H4_prior_index": 459,
        "H1_prior_index": 1755,
        "pre_local_low": 4774.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-21T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4780.965,
        "D_prior_index": 76,
        "H4_prior_index": 459,
        "H1_prior_index": 1756,
        "pre_local_high": 4793.22,
        "confirmation_time": "2026-04-21T11:45:00Z",
        "impulse_extreme": 4798.03,
        "fib50": 4789.497,
        "fib62": 4787.45,
        "entry_mid": 4788.474,
        "invalid": 4780.965,
        "risk_points": 7.509,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-21T12:15:00Z",
        "target1": 4795.982,
        "target2": 4803.491,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4798.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-21T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4784.09,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1759,
        "pre_local_low": 4766.545,
        "confirmation_time": "2026-04-21T13:10:00Z",
        "impulse_extreme": 4764.95,
        "fib50": 4774.52,
        "fib62": 4776.817,
        "entry_mid": 4775.668,
        "invalid": 4784.09,
        "risk_points": 8.422,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-21T13:25:00Z",
        "target1": 4767.247,
        "target2": 4758.825,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T13:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4760.35,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1759,
        "pre_local_high": 4798.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4794.52,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1759,
        "pre_local_low": 4760.35,
        "confirmation_time": "2026-04-21T14:40:00Z",
        "impulse_extreme": 4744.045,
        "fib50": 4769.283,
        "fib62": 4775.34,
        "entry_mid": 4772.311,
        "invalid": 4794.52,
        "risk_points": 22.209,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4773.465,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1760,
        "pre_local_high": 4794.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4770.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4757.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4736.895,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1761,
        "pre_local_high": 4793.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4750.28,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1761,
        "pre_local_low": 4723.77,
        "confirmation_time": "2026-04-21T16:25:00Z",
        "impulse_extreme": 4720.16,
        "fib50": 4735.22,
        "fib62": 4738.834,
        "entry_mid": 4737.027,
        "invalid": 4750.28,
        "risk_points": 13.253,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4719.77,
        "D_prior_index": 76,
        "H4_prior_index": 460,
        "H1_prior_index": 1762,
        "pre_local_high": 4757.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T17:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4697.16,
        "D_prior_index": 76,
        "H4_prior_index": 461,
        "H1_prior_index": 1763,
        "pre_local_high": 4747.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T20:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4669.175,
        "D_prior_index": 76,
        "H4_prior_index": 461,
        "H1_prior_index": 1766,
        "pre_local_high": 4715.06,
        "confirmation_time": "2026-04-21T20:50:00Z",
        "impulse_extreme": 4719.015,
        "fib50": 4694.095,
        "fib62": 4688.114,
        "entry_mid": 4691.105,
        "invalid": 4669.175,
        "risk_points": 21.93,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4716.425,
        "D_prior_index": 77,
        "H4_prior_index": 462,
        "H1_prior_index": 1767,
        "pre_local_high": 4726.52,
        "confirmation_time": "2026-04-21T23:10:00Z",
        "impulse_extreme": 4729.855,
        "fib50": 4723.14,
        "fib62": 4721.528,
        "entry_mid": 4722.334,
        "invalid": 4716.425,
        "risk_points": 5.909,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-21T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4715.78,
        "D_prior_index": 77,
        "H4_prior_index": 462,
        "H1_prior_index": 1767,
        "pre_local_high": 4726.52,
        "confirmation_time": "2026-04-21T23:10:00Z",
        "impulse_extreme": 4729.855,
        "fib50": 4722.817,
        "fib62": 4721.128,
        "entry_mid": 4721.973,
        "invalid": 4715.78,
        "risk_points": 6.193,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-21T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-21T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-21T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.915,
        "D_prior_index": 77,
        "H4_prior_index": 462,
        "H1_prior_index": 1768,
        "pre_local_low": 4711.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4747.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4754.745,
        "D_prior_index": 77,
        "H4_prior_index": 463,
        "H1_prior_index": 1770,
        "pre_local_low": 4735.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4758.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T02:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4759.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4751.115,
        "D_prior_index": 77,
        "H4_prior_index": 463,
        "H1_prior_index": 1771,
        "pre_local_high": 4759.025,
        "confirmation_time": "2026-04-22T03:00:00Z",
        "impulse_extreme": 4759.305,
        "fib50": 4755.21,
        "fib62": 4754.227,
        "entry_mid": 4754.719,
        "invalid": 4751.115,
        "risk_points": 3.604,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T04:25:00Z",
        "target1": 4758.322,
        "target2": 4761.926,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4756.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4765.035,
        "D_prior_index": 77,
        "H4_prior_index": 463,
        "H1_prior_index": 1772,
        "pre_local_low": 4750.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4756.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4752.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4752.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4759.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4752.32,
        "D_prior_index": 77,
        "H4_prior_index": 464,
        "H1_prior_index": 1774,
        "pre_local_high": 4765.035,
        "confirmation_time": "2026-04-22T05:15:00Z",
        "impulse_extreme": 4769.755,
        "fib50": 4761.038,
        "fib62": 4758.945,
        "entry_mid": 4759.991,
        "invalid": 4752.32,
        "risk_points": 7.671,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T06:00:00Z",
        "target1": 4767.663,
        "target2": 4775.334,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4772.0,
        "D_prior_index": 77,
        "H4_prior_index": 464,
        "H1_prior_index": 1774,
        "pre_local_low": 4752.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4767.745,
        "D_prior_index": 77,
        "H4_prior_index": 464,
        "H1_prior_index": 1775,
        "pre_local_low": 4752.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4763.395,
        "D_prior_index": 77,
        "H4_prior_index": 464,
        "H1_prior_index": 1775,
        "pre_local_high": 4772.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4772.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4762.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4762.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4751.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4755.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4762.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4752.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4760.415,
        "D_prior_index": 77,
        "H4_prior_index": 465,
        "H1_prior_index": 1779,
        "pre_local_low": 4745.89,
        "confirmation_time": "2026-04-22T12:45:00Z",
        "impulse_extreme": 4742.98,
        "fib50": 4751.698,
        "fib62": 4753.79,
        "entry_mid": 4752.744,
        "invalid": 4760.415,
        "risk_points": 7.671,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T13:35:00Z",
        "target1": 4745.072,
        "target2": 4737.401,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4760.555,
        "D_prior_index": 77,
        "H4_prior_index": 465,
        "H1_prior_index": 1780,
        "pre_local_low": 4745.89,
        "confirmation_time": "2026-04-22T12:45:00Z",
        "impulse_extreme": 4742.98,
        "fib50": 4751.767,
        "fib62": 4753.877,
        "entry_mid": 4752.822,
        "invalid": 4760.555,
        "risk_points": 7.733,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T13:35:00Z",
        "target1": 4745.089,
        "target2": 4737.356,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4747.88,
        "D_prior_index": 77,
        "H4_prior_index": 465,
        "H1_prior_index": 1780,
        "pre_local_high": 4760.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4757.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4747.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4750.815,
        "D_prior_index": 77,
        "H4_prior_index": 466,
        "H1_prior_index": 1782,
        "pre_local_low": 4740.32,
        "confirmation_time": "2026-04-22T14:30:00Z",
        "impulse_extreme": 4733.355,
        "fib50": 4742.085,
        "fib62": 4744.18,
        "entry_mid": 4743.133,
        "invalid": 4750.815,
        "risk_points": 7.682,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T18:45:00Z",
        "target1": 4735.45,
        "target2": 4727.768,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T13:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4736.595,
        "D_prior_index": 77,
        "H4_prior_index": 466,
        "H1_prior_index": 1782,
        "pre_local_high": 4760.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4760.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4740.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4735.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4724.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4723.995,
        "D_prior_index": 77,
        "H4_prior_index": 466,
        "H1_prior_index": 1785,
        "pre_local_high": 4740.395,
        "confirmation_time": "2026-04-22T18:45:00Z",
        "impulse_extreme": 4750.2,
        "fib50": 4737.097,
        "fib62": 4733.953,
        "entry_mid": 4735.525,
        "invalid": 4723.995,
        "risk_points": 11.53,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T19:10:00Z",
        "target1": 4747.055,
        "target2": 4758.586,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4732.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-22T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.515,
        "D_prior_index": 77,
        "H4_prior_index": 467,
        "H1_prior_index": 1786,
        "pre_local_high": 4739.64,
        "confirmation_time": "2026-04-22T18:45:00Z",
        "impulse_extreme": 4750.2,
        "fib50": 4741.858,
        "fib62": 4739.855,
        "entry_mid": 4740.856,
        "invalid": 4733.515,
        "risk_points": 7.341,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-22T18:55:00Z",
        "target1": 4748.198,
        "target2": 4755.539,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4738.49,
        "D_prior_index": 77,
        "H4_prior_index": 467,
        "H1_prior_index": 1786,
        "pre_local_low": 4723.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4737.075,
        "D_prior_index": 77,
        "H4_prior_index": 467,
        "H1_prior_index": 1788,
        "pre_local_high": 4750.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-22T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4737.13,
        "D_prior_index": 77,
        "H4_prior_index": 467,
        "H1_prior_index": 1788,
        "pre_local_high": 4750.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4734.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4739.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4742.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-22T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-22T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-23T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.135,
        "D_prior_index": 78,
        "H4_prior_index": 468,
        "H1_prior_index": 1792,
        "pre_local_high": 4734.33,
        "confirmation_time": "2026-04-23T00:25:00Z",
        "impulse_extreme": 4742.37,
        "fib50": 4718.253,
        "fib62": 4712.464,
        "entry_mid": 4715.358,
        "invalid": 4694.135,
        "risk_points": 21.223,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-23T02:05:00Z",
        "target1": 4736.582,
        "target2": 4757.805,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4754.2,
        "D_prior_index": 78,
        "H4_prior_index": 468,
        "H1_prior_index": 1792,
        "pre_local_low": 4694.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4726.275,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1793,
        "pre_local_high": 4754.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4737.145,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1793,
        "pre_local_low": 4694.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4705.17,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1794,
        "pre_local_high": 4754.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4698.26,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1795,
        "pre_local_high": 4737.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4707.645,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1795,
        "pre_local_low": 4698.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4707.255,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1796,
        "pre_local_low": 4698.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-23T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4698.935,
        "D_prior_index": 78,
        "H4_prior_index": 469,
        "H1_prior_index": 1796,
        "pre_local_high": 4708.74,
        "confirmation_time": "2026-04-23T05:05:00Z",
        "impulse_extreme": 4710.025,
        "fib50": 4704.48,
        "fib62": 4703.149,
        "entry_mid": 4703.815,
        "invalid": 4698.935,
        "risk_points": 4.88,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4718.345,
        "D_prior_index": 78,
        "H4_prior_index": 470,
        "H1_prior_index": 1798,
        "pre_local_low": 4692.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4721.57,
        "D_prior_index": 78,
        "H4_prior_index": 470,
        "H1_prior_index": 1798,
        "pre_local_low": 4692.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-23T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4707.615,
        "D_prior_index": 78,
        "H4_prior_index": 470,
        "H1_prior_index": 1799,
        "pre_local_high": 4721.57,
        "confirmation_time": "2026-04-23T08:00:00Z",
        "impulse_extreme": 4725.115,
        "fib50": 4716.365,
        "fib62": 4714.265,
        "entry_mid": 4715.315,
        "invalid": 4707.615,
        "risk_points": 7.7,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-23T08:25:00Z",
        "target1": 4723.015,
        "target2": 4730.715,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4731.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4743.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4724.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4741.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-23T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4736.69,
        "D_prior_index": 78,
        "H4_prior_index": 472,
        "H1_prior_index": 1806,
        "pre_local_low": 4717.185,
        "confirmation_time": "2026-04-23T17:05:00Z",
        "impulse_extreme": 4709.18,
        "fib50": 4722.935,
        "fib62": 4726.236,
        "entry_mid": 4724.586,
        "invalid": 4736.69,
        "risk_points": 12.104,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4726.92,
        "D_prior_index": 78,
        "H4_prior_index": 472,
        "H1_prior_index": 1807,
        "pre_local_high": 4741.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4741.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4737.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T17:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4704.645,
        "D_prior_index": 78,
        "H4_prior_index": 473,
        "H1_prior_index": 1809,
        "pre_local_high": 4737.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-23T17:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4664.38,
        "D_prior_index": 78,
        "H4_prior_index": 473,
        "H1_prior_index": 1809,
        "pre_local_high": 4737.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-23T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4691.015,
        "D_prior_index": 79,
        "H4_prior_index": 474,
        "H1_prior_index": 1813,
        "pre_local_high": 4700.075,
        "confirmation_time": "2026-04-24T00:20:00Z",
        "impulse_extreme": 4701.18,
        "fib50": 4696.097,
        "fib62": 4694.878,
        "entry_mid": 4695.488,
        "invalid": 4691.015,
        "risk_points": 4.473,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4695.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-23T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-23T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4692.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4700.29,
        "D_prior_index": 79,
        "H4_prior_index": 474,
        "H1_prior_index": 1815,
        "pre_local_low": 4686.65,
        "confirmation_time": "2026-04-24T02:20:00Z",
        "impulse_extreme": 4684.94,
        "fib50": 4692.615,
        "fib62": 4694.457,
        "entry_mid": 4693.536,
        "invalid": 4700.29,
        "risk_points": 6.754,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T07:50:00Z",
        "target1": 4686.782,
        "target2": 4680.028,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4708.175,
        "D_prior_index": 79,
        "H4_prior_index": 474,
        "H1_prior_index": 1815,
        "pre_local_low": 4686.65,
        "confirmation_time": "2026-04-24T02:20:00Z",
        "impulse_extreme": 4684.94,
        "fib50": 4696.557,
        "fib62": 4699.346,
        "entry_mid": 4697.952,
        "invalid": 4708.175,
        "risk_points": 10.223,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T08:20:00Z",
        "target1": 4687.728,
        "target2": 4677.505,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-24T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4711.23,
        "D_prior_index": 79,
        "H4_prior_index": 475,
        "H1_prior_index": 1816,
        "pre_local_low": 4690.965,
        "confirmation_time": "2026-04-24T01:40:00Z",
        "impulse_extreme": 4690.43,
        "fib50": 4700.83,
        "fib62": 4703.326,
        "entry_mid": 4702.078,
        "invalid": 4711.23,
        "risk_points": 9.152,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4690.29,
        "D_prior_index": 79,
        "H4_prior_index": 475,
        "H1_prior_index": 1816,
        "pre_local_high": 4711.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T04:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4658.03,
        "D_prior_index": 79,
        "H4_prior_index": 475,
        "H1_prior_index": 1819,
        "pre_local_high": 4679.225,
        "confirmation_time": "2026-04-24T05:30:00Z",
        "impulse_extreme": 4684.85,
        "fib50": 4671.44,
        "fib62": 4668.222,
        "entry_mid": 4669.831,
        "invalid": 4658.03,
        "risk_points": 11.801,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T06:25:00Z",
        "target1": 4681.632,
        "target2": 4693.432,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4688.255,
        "D_prior_index": 79,
        "H4_prior_index": 476,
        "H1_prior_index": 1821,
        "pre_local_low": 4658.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4669.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4667.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4685.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4696.76,
        "D_prior_index": 79,
        "H4_prior_index": 477,
        "H1_prior_index": 1824,
        "pre_local_low": 4683.035,
        "confirmation_time": "2026-04-24T09:30:00Z",
        "impulse_extreme": 4679.35,
        "fib50": 4688.055,
        "fib62": 4690.144,
        "entry_mid": 4689.1,
        "invalid": 4696.76,
        "risk_points": 7.66,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T09:40:00Z",
        "target1": 4681.439,
        "target2": 4673.779,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4679.35,
        "D_prior_index": 79,
        "H4_prior_index": 477,
        "H1_prior_index": 1824,
        "pre_local_high": 4697.55,
        "confirmation_time": "2026-04-24T11:20:00Z",
        "impulse_extreme": 4711.96,
        "fib50": 4695.655,
        "fib62": 4691.742,
        "entry_mid": 4693.698,
        "invalid": 4679.35,
        "risk_points": 14.348,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T12:45:00Z",
        "target1": 4708.047,
        "target2": 4722.395,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4686.33,
        "D_prior_index": 79,
        "H4_prior_index": 477,
        "H1_prior_index": 1825,
        "pre_local_low": 4679.35,
        "confirmation_time": "2026-04-24T10:30:00Z",
        "impulse_extreme": 4675.48,
        "fib50": 4680.905,
        "fib62": 4682.207,
        "entry_mid": 4681.556,
        "invalid": 4686.33,
        "risk_points": 4.774,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T10:40:00Z",
        "target1": 4676.782,
        "target2": 4672.008,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4717.44,
        "D_prior_index": 79,
        "H4_prior_index": 477,
        "H1_prior_index": 1826,
        "pre_local_low": 4674.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-24T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4701.7,
        "D_prior_index": 79,
        "H4_prior_index": 477,
        "H1_prior_index": 1827,
        "pre_local_high": 4717.44,
        "confirmation_time": "2026-04-24T14:05:00Z",
        "impulse_extreme": 4731.09,
        "fib50": 4716.395,
        "fib62": 4712.868,
        "entry_mid": 4714.632,
        "invalid": 4701.7,
        "risk_points": 12.932,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-24T15:40:00Z",
        "target1": 4727.563,
        "target2": 4740.495,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4693.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4689.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4718.535,
        "D_prior_index": 79,
        "H4_prior_index": 478,
        "H1_prior_index": 1830,
        "pre_local_high": 4740.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4733.425,
        "D_prior_index": 79,
        "H4_prior_index": 478,
        "H1_prior_index": 1830,
        "pre_local_low": 4712.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4719.255,
        "D_prior_index": 79,
        "H4_prior_index": 478,
        "H1_prior_index": 1831,
        "pre_local_high": 4733.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4727.32,
        "D_prior_index": 79,
        "H4_prior_index": 478,
        "H1_prior_index": 1831,
        "pre_local_low": 4715.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4727.855,
        "D_prior_index": 79,
        "H4_prior_index": 478,
        "H1_prior_index": 1831,
        "pre_local_low": 4715.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4719.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4728.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4717.015,
        "D_prior_index": 79,
        "H4_prior_index": 479,
        "H1_prior_index": 1833,
        "pre_local_high": 4730.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4726.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-24T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4713.785,
        "D_prior_index": 79,
        "H4_prior_index": 479,
        "H1_prior_index": 1834,
        "pre_local_high": 4726.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-24T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-24T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-26T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-26T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4682.155,
        "D_prior_index": 80,
        "H4_prior_index": 480,
        "H1_prior_index": 1836,
        "pre_local_high": 4717.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-26T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-26T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4681.805,
        "D_prior_index": 80,
        "H4_prior_index": 480,
        "H1_prior_index": 1836,
        "pre_local_high": 4712.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-26T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-26T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4677.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4672.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4682.5,
        "D_prior_index": 80,
        "H4_prior_index": 480,
        "H1_prior_index": 1838,
        "pre_local_low": 4672.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-27T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4676.85,
        "D_prior_index": 80,
        "H4_prior_index": 480,
        "H1_prior_index": 1838,
        "pre_local_high": 4686.085,
        "confirmation_time": "2026-04-27T00:50:00Z",
        "impulse_extreme": 4689.07,
        "fib50": 4682.96,
        "fib62": 4681.494,
        "entry_mid": 4682.227,
        "invalid": 4676.85,
        "risk_points": 5.377,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4710.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-27T01:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4691.07,
        "D_prior_index": 80,
        "H4_prior_index": 481,
        "H1_prior_index": 1839,
        "pre_local_high": 4710.08,
        "confirmation_time": "2026-04-27T02:35:00Z",
        "impulse_extreme": 4714.435,
        "fib50": 4702.753,
        "fib62": 4699.949,
        "entry_mid": 4701.351,
        "invalid": 4691.07,
        "risk_points": 10.281,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4701.105,
        "D_prior_index": 80,
        "H4_prior_index": 481,
        "H1_prior_index": 1839,
        "pre_local_low": 4672.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4706.825,
        "D_prior_index": 80,
        "H4_prior_index": 481,
        "H1_prior_index": 1840,
        "pre_local_low": 4676.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T02:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4728.26,
        "D_prior_index": 80,
        "H4_prior_index": 481,
        "H1_prior_index": 1842,
        "pre_local_low": 4705.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-27T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4729.965,
        "D_prior_index": 80,
        "H4_prior_index": 481,
        "H1_prior_index": 1842,
        "pre_local_low": 4714.535,
        "confirmation_time": "2026-04-27T05:30:00Z",
        "impulse_extreme": 4711.855,
        "fib50": 4720.91,
        "fib62": 4723.083,
        "entry_mid": 4721.997,
        "invalid": 4729.965,
        "risk_points": 7.968,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4709.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4705.595,
        "D_prior_index": 80,
        "H4_prior_index": 482,
        "H1_prior_index": 1846,
        "pre_local_high": 4718.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T08:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4714.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4699.3,
        "D_prior_index": 80,
        "H4_prior_index": 483,
        "H1_prior_index": 1847,
        "pre_local_high": 4714.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T10:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4699.675,
        "D_prior_index": 80,
        "H4_prior_index": 483,
        "H1_prior_index": 1848,
        "pre_local_high": 4714.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-27T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4711.075,
        "D_prior_index": 80,
        "H4_prior_index": 483,
        "H1_prior_index": 1848,
        "pre_local_low": 4699.3,
        "confirmation_time": "2026-04-27T12:40:00Z",
        "impulse_extreme": 4697.24,
        "fib50": 4704.157,
        "fib62": 4705.818,
        "entry_mid": 4704.988,
        "invalid": 4711.075,
        "risk_points": 6.087,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-27T12:50:00Z",
        "target1": 4698.9,
        "target2": 4692.813,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4700.345,
        "D_prior_index": 80,
        "H4_prior_index": 483,
        "H1_prior_index": 1849,
        "pre_local_high": 4711.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-27T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4708.765,
        "D_prior_index": 80,
        "H4_prior_index": 483,
        "H1_prior_index": 1849,
        "pre_local_low": 4699.62,
        "confirmation_time": "2026-04-27T12:40:00Z",
        "impulse_extreme": 4697.24,
        "fib50": 4703.003,
        "fib62": 4704.386,
        "entry_mid": 4703.694,
        "invalid": 4708.765,
        "risk_points": 5.071,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-27T12:45:00Z",
        "target1": 4698.623,
        "target2": 4693.552,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4701.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4688.005,
        "D_prior_index": 80,
        "H4_prior_index": 484,
        "H1_prior_index": 1852,
        "pre_local_high": 4712.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4683.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4682.755,
        "D_prior_index": 80,
        "H4_prior_index": 484,
        "H1_prior_index": 1853,
        "pre_local_low": 4667.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4667.425,
        "D_prior_index": 80,
        "H4_prior_index": 484,
        "H1_prior_index": 1854,
        "pre_local_high": 4696.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4679.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4678.595,
        "D_prior_index": 80,
        "H4_prior_index": 485,
        "H1_prior_index": 1855,
        "pre_local_low": 4667.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4679.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-27T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4677.55,
        "D_prior_index": 80,
        "H4_prior_index": 485,
        "H1_prior_index": 1858,
        "pre_local_high": 4685.585,
        "confirmation_time": "2026-04-27T22:05:00Z",
        "impulse_extreme": 4689.9,
        "fib50": 4683.725,
        "fib62": 4682.243,
        "entry_mid": 4682.984,
        "invalid": 4677.55,
        "risk_points": 5.434,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T01:50:00Z",
        "target1": 4688.418,
        "target2": 4693.852,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-27T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4681.58,
        "D_prior_index": 80,
        "H4_prior_index": 485,
        "H1_prior_index": 1858,
        "pre_local_low": 4676.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-27T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4686.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-27T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4686.215,
        "D_prior_index": 81,
        "H4_prior_index": 486,
        "H1_prior_index": 1859,
        "pre_local_high": 4691.32,
        "confirmation_time": "2026-04-27T23:30:00Z",
        "impulse_extreme": 4692.34,
        "fib50": 4689.278,
        "fib62": 4688.543,
        "entry_mid": 4688.91,
        "invalid": 4686.215,
        "risk_points": 2.695,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-27T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-27T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4694.945,
        "D_prior_index": 81,
        "H4_prior_index": 486,
        "H1_prior_index": 1860,
        "pre_local_low": 4682.385,
        "confirmation_time": "2026-04-28T01:50:00Z",
        "impulse_extreme": 4680.92,
        "fib50": 4687.932,
        "fib62": 4689.615,
        "entry_mid": 4688.774,
        "invalid": 4694.945,
        "risk_points": 6.171,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4691.92,
        "D_prior_index": 81,
        "H4_prior_index": 486,
        "H1_prior_index": 1861,
        "pre_local_high": 4697.51,
        "confirmation_time": "2026-04-28T00:05:00Z",
        "impulse_extreme": 4701.64,
        "fib50": 4696.78,
        "fib62": 4695.614,
        "entry_mid": 4696.197,
        "invalid": 4691.92,
        "risk_points": 4.277,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T00:15:00Z",
        "target1": 4700.474,
        "target2": 4704.75,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4691.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4684.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4691.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T02:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4666.6,
        "D_prior_index": 81,
        "H4_prior_index": 487,
        "H1_prior_index": 1863,
        "pre_local_high": 4697.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-28T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4670.115,
        "D_prior_index": 81,
        "H4_prior_index": 487,
        "H1_prior_index": 1865,
        "pre_local_low": 4666.755,
        "confirmation_time": "2026-04-28T05:00:00Z",
        "impulse_extreme": 4661.82,
        "fib50": 4665.967,
        "fib62": 4666.963,
        "entry_mid": 4666.465,
        "invalid": 4670.115,
        "risk_points": 3.65,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4624.08,
        "D_prior_index": 81,
        "H4_prior_index": 488,
        "H1_prior_index": 1866,
        "pre_local_high": 4670.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4627.225,
        "D_prior_index": 81,
        "H4_prior_index": 488,
        "H1_prior_index": 1868,
        "pre_local_high": 4644.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4635.405,
        "D_prior_index": 81,
        "H4_prior_index": 488,
        "H1_prior_index": 1868,
        "pre_local_low": 4623.545,
        "confirmation_time": "2026-04-28T08:00:00Z",
        "impulse_extreme": 4617.51,
        "fib50": 4626.458,
        "fib62": 4628.605,
        "entry_mid": 4627.531,
        "invalid": 4635.405,
        "risk_points": 7.874,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T08:25:00Z",
        "target1": 4619.657,
        "target2": 4611.784,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.655,
        "D_prior_index": 81,
        "H4_prior_index": 488,
        "H1_prior_index": 1868,
        "pre_local_high": 4643.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4625.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4621.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4608.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T10:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.385,
        "D_prior_index": 81,
        "H4_prior_index": 489,
        "H1_prior_index": 1871,
        "pre_local_high": 4635.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4616.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4594.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4555.135,
        "D_prior_index": 81,
        "H4_prior_index": 489,
        "H1_prior_index": 1873,
        "pre_local_high": 4616.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4598.275,
        "D_prior_index": 81,
        "H4_prior_index": 489,
        "H1_prior_index": 1873,
        "pre_local_low": 4555.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4570.875,
        "D_prior_index": 81,
        "H4_prior_index": 489,
        "H1_prior_index": 1873,
        "pre_local_high": 4614.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4570.86,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1874,
        "pre_local_high": 4600.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4591.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.755,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1874,
        "pre_local_low": 4567.57,
        "confirmation_time": "2026-04-28T14:00:00Z",
        "impulse_extreme": 4565.55,
        "fib50": 4579.153,
        "fib62": 4582.417,
        "entry_mid": 4580.785,
        "invalid": 4592.755,
        "risk_points": 11.97,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T15:00:00Z",
        "target1": 4568.815,
        "target2": 4556.844,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4563.76,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1875,
        "pre_local_high": 4600.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4557.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4578.24,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1875,
        "pre_local_low": 4563.76,
        "confirmation_time": "2026-04-28T14:35:00Z",
        "impulse_extreme": 4560.19,
        "fib50": 4569.215,
        "fib62": 4571.381,
        "entry_mid": 4570.298,
        "invalid": 4578.24,
        "risk_points": 7.942,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T14:55:00Z",
        "target1": 4562.356,
        "target2": 4554.414,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4582.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-28T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4566.995,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1876,
        "pre_local_high": 4592.755,
        "confirmation_time": "2026-04-28T16:50:00Z",
        "impulse_extreme": 4594.585,
        "fib50": 4580.79,
        "fib62": 4577.479,
        "entry_mid": 4579.135,
        "invalid": 4566.995,
        "risk_points": 12.14,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4586.95,
        "D_prior_index": 81,
        "H4_prior_index": 490,
        "H1_prior_index": 1877,
        "pre_local_low": 4557.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4577.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4586.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4587.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4597.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4592.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4593.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4593.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4593.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-28T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4593.415,
        "D_prior_index": 81,
        "H4_prior_index": 491,
        "H1_prior_index": 1880,
        "pre_local_high": 4600.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4598.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-28T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4597.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.38,
        "D_prior_index": 82,
        "H4_prior_index": 492,
        "H1_prior_index": 1882,
        "pre_local_high": 4598.745,
        "confirmation_time": "2026-04-29T00:00:00Z",
        "impulse_extreme": 4606.94,
        "fib50": 4599.66,
        "fib62": 4597.913,
        "entry_mid": 4598.786,
        "invalid": 4592.38,
        "risk_points": 6.406,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T00:20:00Z",
        "target1": 4605.193,
        "target2": 4611.599,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-28T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-28T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4593.59,
        "D_prior_index": 82,
        "H4_prior_index": 492,
        "H1_prior_index": 1883,
        "pre_local_low": 4589.34,
        "confirmation_time": "2026-04-28T23:35:00Z",
        "impulse_extreme": 4588.095,
        "fib50": 4590.843,
        "fib62": 4591.502,
        "entry_mid": 4591.172,
        "invalid": 4593.59,
        "risk_points": 2.418,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-28T23:45:00Z",
        "target1": 4588.754,
        "target2": 4586.337,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4596.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4579.265,
        "D_prior_index": 82,
        "H4_prior_index": 493,
        "H1_prior_index": 1885,
        "pre_local_high": 4610.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.32,
        "D_prior_index": 82,
        "H4_prior_index": 493,
        "H1_prior_index": 1886,
        "pre_local_low": 4575.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4603.415,
        "D_prior_index": 82,
        "H4_prior_index": 493,
        "H1_prior_index": 1887,
        "pre_local_low": 4580.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.395,
        "D_prior_index": 82,
        "H4_prior_index": 493,
        "H1_prior_index": 1887,
        "pre_local_high": 4604.32,
        "confirmation_time": "2026-04-29T04:50:00Z",
        "impulse_extreme": 4604.71,
        "fib50": 4598.552,
        "fib62": 4597.075,
        "entry_mid": 4597.814,
        "invalid": 4592.395,
        "risk_points": 5.419,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T05:30:00Z",
        "target1": 4603.232,
        "target2": 4608.651,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-29T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.725,
        "D_prior_index": 82,
        "H4_prior_index": 494,
        "H1_prior_index": 1889,
        "pre_local_low": 4592.395,
        "confirmation_time": "2026-04-29T05:55:00Z",
        "impulse_extreme": 4590.775,
        "fib50": 4599.25,
        "fib62": 4601.284,
        "entry_mid": 4600.267,
        "invalid": 4607.725,
        "risk_points": 7.458,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4598.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4594.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T05:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4603.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4580.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4589.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T07:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4569.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4573.425,
        "D_prior_index": 82,
        "H4_prior_index": 494,
        "H1_prior_index": 1892,
        "pre_local_low": 4567.37,
        "confirmation_time": "2026-04-29T08:10:00Z",
        "impulse_extreme": 4564.665,
        "fib50": 4569.045,
        "fib62": 4570.096,
        "entry_mid": 4569.571,
        "invalid": 4573.425,
        "risk_points": 3.854,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T08:15:00Z",
        "target1": 4565.716,
        "target2": 4561.862,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4557.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4580.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4576.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4563.975,
        "D_prior_index": 82,
        "H4_prior_index": 495,
        "H1_prior_index": 1894,
        "pre_local_high": 4580.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4572.2,
        "D_prior_index": 82,
        "H4_prior_index": 495,
        "H1_prior_index": 1895,
        "pre_local_low": 4551.675,
        "confirmation_time": "2026-04-29T12:50:00Z",
        "impulse_extreme": 4544.89,
        "fib50": 4558.545,
        "fib62": 4561.822,
        "entry_mid": 4560.184,
        "invalid": 4572.2,
        "risk_points": 12.016,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T15:45:00Z",
        "target1": 4548.167,
        "target2": 4536.151,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4563.73,
        "D_prior_index": 82,
        "H4_prior_index": 495,
        "H1_prior_index": 1895,
        "pre_local_high": 4576.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4571.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4568.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4569.155,
        "D_prior_index": 82,
        "H4_prior_index": 495,
        "H1_prior_index": 1896,
        "pre_local_low": 4559.25,
        "confirmation_time": "2026-04-29T12:30:00Z",
        "impulse_extreme": 4551.06,
        "fib50": 4560.108,
        "fib62": 4562.279,
        "entry_mid": 4561.193,
        "invalid": 4569.155,
        "risk_points": 7.962,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T12:45:00Z",
        "target1": 4553.231,
        "target2": 4545.27,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4560.21,
        "D_prior_index": 82,
        "H4_prior_index": 495,
        "H1_prior_index": 1896,
        "pre_local_low": 4551.06,
        "confirmation_time": "2026-04-29T12:50:00Z",
        "impulse_extreme": 4544.89,
        "fib50": 4552.55,
        "fib62": 4554.388,
        "entry_mid": 4553.469,
        "invalid": 4560.21,
        "risk_points": 6.741,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T13:00:00Z",
        "target1": 4546.728,
        "target2": 4539.988,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.095,
        "D_prior_index": 82,
        "H4_prior_index": 496,
        "H1_prior_index": 1897,
        "pre_local_high": 4569.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4547.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.3,
        "D_prior_index": 82,
        "H4_prior_index": 496,
        "H1_prior_index": 1899,
        "pre_local_high": 4547.08,
        "confirmation_time": "2026-04-29T15:35:00Z",
        "impulse_extreme": 4552.865,
        "fib50": 4544.583,
        "fib62": 4542.595,
        "entry_mid": 4543.589,
        "invalid": 4536.3,
        "risk_points": 7.289,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T15:50:00Z",
        "target1": 4550.877,
        "target2": 4558.166,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4558.995,
        "D_prior_index": 82,
        "H4_prior_index": 496,
        "H1_prior_index": 1899,
        "pre_local_low": 4518.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4542.85,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1901,
        "pre_local_high": 4564.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.32,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1901,
        "pre_local_low": 4540.375,
        "confirmation_time": "2026-04-29T18:05:00Z",
        "impulse_extreme": 4531.73,
        "fib50": 4542.025,
        "fib62": 4544.496,
        "entry_mid": 4543.26,
        "invalid": 4552.32,
        "risk_points": 9.06,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T19:00:00Z",
        "target1": 4534.201,
        "target2": 4525.141,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4554.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.79,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1901,
        "pre_local_high": 4564.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T18:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.05,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1902,
        "pre_local_low": 4538.6,
        "confirmation_time": "2026-04-29T18:05:00Z",
        "impulse_extreme": 4531.73,
        "fib50": 4542.39,
        "fib62": 4544.948,
        "entry_mid": 4543.669,
        "invalid": 4553.05,
        "risk_points": 9.381,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-29T19:00:00Z",
        "target1": 4534.288,
        "target2": 4524.908,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.16,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1902,
        "pre_local_high": 4554.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T18:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4540.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T18:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.335,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1902,
        "pre_local_high": 4554.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.275,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1902,
        "pre_local_low": 4518.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.855,
        "D_prior_index": 82,
        "H4_prior_index": 497,
        "H1_prior_index": 1903,
        "pre_local_low": 4518.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4553.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4541.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4541.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-29T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4539.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.19,
        "D_prior_index": 83,
        "H4_prior_index": 498,
        "H1_prior_index": 1905,
        "pre_local_low": 4539.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-29T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4549.525,
        "D_prior_index": 83,
        "H4_prior_index": 498,
        "H1_prior_index": 1906,
        "pre_local_high": 4555.205,
        "confirmation_time": "2026-04-29T23:45:00Z",
        "impulse_extreme": 4558.31,
        "fib50": 4553.917,
        "fib62": 4552.863,
        "entry_mid": 4553.39,
        "invalid": 4549.525,
        "risk_points": 3.865,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T04:00:00Z",
        "target1": 4557.256,
        "target2": 4561.121,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-29T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-29T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4555.205,
        "D_prior_index": 83,
        "H4_prior_index": 498,
        "H1_prior_index": 1906,
        "pre_local_low": 4539.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.745,
        "D_prior_index": 83,
        "H4_prior_index": 498,
        "H1_prior_index": 1907,
        "pre_local_low": 4547.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-30T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.485,
        "D_prior_index": 83,
        "H4_prior_index": 498,
        "H1_prior_index": 1907,
        "pre_local_high": 4568.745,
        "confirmation_time": "2026-04-30T00:45:00Z",
        "impulse_extreme": 4574.245,
        "fib50": 4565.365,
        "fib62": 4563.234,
        "entry_mid": 4564.299,
        "invalid": 4556.485,
        "risk_points": 7.814,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T01:10:00Z",
        "target1": 4572.114,
        "target2": 4579.928,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4564.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-30T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.3,
        "D_prior_index": 83,
        "H4_prior_index": 499,
        "H1_prior_index": 1908,
        "pre_local_low": 4556.485,
        "confirmation_time": "2026-04-30T03:55:00Z",
        "impulse_extreme": 4555.79,
        "fib50": 4568.545,
        "fib62": 4571.606,
        "entry_mid": 4570.076,
        "invalid": 4581.3,
        "risk_points": 11.224,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T05:50:00Z",
        "target1": 4558.851,
        "target2": 4547.627,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4582.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4559.94,
        "D_prior_index": 83,
        "H4_prior_index": 499,
        "H1_prior_index": 1909,
        "pre_local_high": 4582.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4569.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-30T04:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.09,
        "D_prior_index": 83,
        "H4_prior_index": 499,
        "H1_prior_index": 1911,
        "pre_local_low": 4551.0,
        "confirmation_time": "2026-04-30T04:20:00Z",
        "impulse_extreme": 4549.52,
        "fib50": 4553.305,
        "fib62": 4554.213,
        "entry_mid": 4553.759,
        "invalid": 4557.09,
        "risk_points": 3.331,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T05:05:00Z",
        "target1": 4550.428,
        "target2": 4547.098,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4549.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4569.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4560.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4584.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.9,
        "D_prior_index": 83,
        "H4_prior_index": 500,
        "H1_prior_index": 1915,
        "pre_local_low": 4577.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4620.19,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1916,
        "pre_local_low": 4584.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4631.93,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1916,
        "pre_local_low": 4596.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-30T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4618.31,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1916,
        "pre_local_high": 4631.93,
        "confirmation_time": "2026-04-30T10:20:00Z",
        "impulse_extreme": 4635.825,
        "fib50": 4627.068,
        "fib62": 4624.966,
        "entry_mid": 4626.017,
        "invalid": 4618.31,
        "risk_points": 7.707,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T12:30:00Z",
        "target1": 4633.723,
        "target2": 4641.43,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4629.265,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1917,
        "pre_local_low": 4612.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4647.045,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1917,
        "pre_local_low": 4614.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4634.05,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1917,
        "pre_local_high": 4647.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4645.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4630.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-04-30T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4637.81,
        "D_prior_index": 83,
        "H4_prior_index": 501,
        "H1_prior_index": 1919,
        "pre_local_low": 4627.08,
        "confirmation_time": "2026-04-30T12:40:00Z",
        "impulse_extreme": 4625.425,
        "fib50": 4631.618,
        "fib62": 4633.104,
        "entry_mid": 4632.361,
        "invalid": 4637.81,
        "risk_points": 5.449,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-04-30T12:50:00Z",
        "target1": 4626.911,
        "target2": 4621.462,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-04-30T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4645.905,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1920,
        "pre_local_low": 4624.75,
        "confirmation_time": "2026-04-30T13:35:00Z",
        "impulse_extreme": 4623.685,
        "fib50": 4634.795,
        "fib62": 4637.461,
        "entry_mid": 4636.128,
        "invalid": 4645.905,
        "risk_points": 9.777,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4609.5,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1921,
        "pre_local_high": 4645.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4625.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4625.985,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1921,
        "pre_local_low": 4609.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4610.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4624.095,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1921,
        "pre_local_low": 4609.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4614.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4624.22,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1922,
        "pre_local_low": 4609.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4624.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4625.57,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1922,
        "pre_local_low": 4609.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4611.33,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1922,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1923,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4605.48,
        "D_prior_index": 83,
        "H4_prior_index": 502,
        "H1_prior_index": 1923,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T17:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4619.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4620.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4621.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4625.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 503,
        "H1_prior_index": 1925,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4625.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4627.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T19:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 503,
        "H1_prior_index": 1926,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T19:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 503,
        "H1_prior_index": 1926,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T19:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 503,
        "H1_prior_index": 1927,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 83,
        "H4_prior_index": 503,
        "H1_prior_index": 1927,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 504,
        "H1_prior_index": 1928,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-04-30T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 504,
        "H1_prior_index": 1929,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4632.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-04-30T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-04-30T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4634.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 505,
        "H1_prior_index": 1931,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4622.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4635.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4632.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.795,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1935,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4616.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4590.86,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1936,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4589.985,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1937,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4585.395,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1937,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T07:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4583.79,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1937,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4566.305,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1938,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4565.16,
        "D_prior_index": 84,
        "H4_prior_index": 506,
        "H1_prior_index": 1938,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4564.485,
        "D_prior_index": 84,
        "H4_prior_index": 507,
        "H1_prior_index": 1939,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4586.695,
        "D_prior_index": 84,
        "H4_prior_index": 508,
        "H1_prior_index": 1943,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4660.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 508,
        "H1_prior_index": 1944,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 508,
        "H1_prior_index": 1945,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4640.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 508,
        "H1_prior_index": 1945,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4648.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4650.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 508,
        "H1_prior_index": 1946,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4642.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4635.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T18:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 84,
        "H4_prior_index": 509,
        "H1_prior_index": 1948,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4624.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4627.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-01T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.22,
        "D_prior_index": 84,
        "H4_prior_index": 509,
        "H1_prior_index": 1950,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-01T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-01T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4617.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-03T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-03T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1951,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-03T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-03T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1952,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-03T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-03T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4618.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-03T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-03T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1952,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.705,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1953,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4601.825,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1953,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T00:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4604.935,
        "D_prior_index": 85,
        "H4_prior_index": 510,
        "H1_prior_index": 1953,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.965,
        "D_prior_index": 85,
        "H4_prior_index": 511,
        "H1_prior_index": 1954,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4618.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T02:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4591.11,
        "D_prior_index": 85,
        "H4_prior_index": 511,
        "H1_prior_index": 1955,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.26,
        "D_prior_index": 85,
        "H4_prior_index": 511,
        "H1_prior_index": 1957,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T05:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4592.365,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1958,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4587.78,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1959,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4583.95,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1959,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4583.57,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1960,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4582.92,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1960,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T07:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4574.325,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1961,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4574.05,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1961,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4573.85,
        "D_prior_index": 85,
        "H4_prior_index": 512,
        "H1_prior_index": 1961,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4580.51,
        "D_prior_index": 85,
        "H4_prior_index": 513,
        "H1_prior_index": 1962,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4526.09,
        "D_prior_index": 85,
        "H4_prior_index": 513,
        "H1_prior_index": 1963,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4561.32,
        "D_prior_index": 85,
        "H4_prior_index": 513,
        "H1_prior_index": 1965,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4555.205,
        "D_prior_index": 85,
        "H4_prior_index": 514,
        "H1_prior_index": 1966,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.44,
        "D_prior_index": 85,
        "H4_prior_index": 514,
        "H1_prior_index": 1967,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4521.665,
        "D_prior_index": 85,
        "H4_prior_index": 515,
        "H1_prior_index": 1970,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-04T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4512.005,
        "D_prior_index": 85,
        "H4_prior_index": 515,
        "H1_prior_index": 1973,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4517.55,
        "D_prior_index": 86,
        "H4_prior_index": 516,
        "H1_prior_index": 1974,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-04T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-04T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4517.42,
        "D_prior_index": 86,
        "H4_prior_index": 516,
        "H1_prior_index": 1975,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.165,
        "D_prior_index": 86,
        "H4_prior_index": 517,
        "H1_prior_index": 1977,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.775,
        "D_prior_index": 86,
        "H4_prior_index": 517,
        "H1_prior_index": 1978,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.675,
        "D_prior_index": 86,
        "H4_prior_index": 517,
        "H1_prior_index": 1979,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.33,
        "D_prior_index": 86,
        "H4_prior_index": 517,
        "H1_prior_index": 1979,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.03,
        "D_prior_index": 86,
        "H4_prior_index": 517,
        "H1_prior_index": 1980,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.73,
        "D_prior_index": 86,
        "H4_prior_index": 518,
        "H1_prior_index": 1982,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4547.985,
        "D_prior_index": 86,
        "H4_prior_index": 518,
        "H1_prior_index": 1984,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.985,
        "D_prior_index": 86,
        "H4_prior_index": 519,
        "H1_prior_index": 1985,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.73,
        "D_prior_index": 86,
        "H4_prior_index": 519,
        "H1_prior_index": 1986,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.96,
        "D_prior_index": 86,
        "H4_prior_index": 519,
        "H1_prior_index": 1987,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.195,
        "D_prior_index": 86,
        "H4_prior_index": 519,
        "H1_prior_index": 1988,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4570.82,
        "D_prior_index": 86,
        "H4_prior_index": 520,
        "H1_prior_index": 1990,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T14:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4565.985,
        "D_prior_index": 86,
        "H4_prior_index": 520,
        "H1_prior_index": 1990,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T14:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4575.46,
        "D_prior_index": 86,
        "H4_prior_index": 520,
        "H1_prior_index": 1990,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4575.435,
        "D_prior_index": 86,
        "H4_prior_index": 520,
        "H1_prior_index": 1991,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.77,
        "D_prior_index": 86,
        "H4_prior_index": 520,
        "H1_prior_index": 1992,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T17:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.355,
        "D_prior_index": 86,
        "H4_prior_index": 521,
        "H1_prior_index": 1993,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.185,
        "D_prior_index": 86,
        "H4_prior_index": 521,
        "H1_prior_index": 1993,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.55,
        "D_prior_index": 86,
        "H4_prior_index": 521,
        "H1_prior_index": 1994,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T20:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4555.01,
        "D_prior_index": 86,
        "H4_prior_index": 521,
        "H1_prior_index": 1996,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-05T20:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.67,
        "D_prior_index": 86,
        "H4_prior_index": 521,
        "H1_prior_index": 1996,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4546.36,
        "D_prior_index": 87,
        "H4_prior_index": 522,
        "H1_prior_index": 1997,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-05T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-05T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4579.665,
        "D_prior_index": 87,
        "H4_prior_index": 522,
        "H1_prior_index": 1998,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4588.33,
        "D_prior_index": 87,
        "H4_prior_index": 522,
        "H1_prior_index": 1999,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4622.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4626.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4628.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4636.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 523,
        "H1_prior_index": 2001,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4651.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 523,
        "H1_prior_index": 2002,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4652.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 524,
        "H1_prior_index": 2004,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4670.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T07:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 524,
        "H1_prior_index": 2006,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4682.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 524,
        "H1_prior_index": 2007,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 525,
        "H1_prior_index": 2008,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 525,
        "H1_prior_index": 2009,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 525,
        "H1_prior_index": 2011,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 525,
        "H1_prior_index": 2011,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 526,
        "H1_prior_index": 2012,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4692.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4717.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 526,
        "H1_prior_index": 2013,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4688.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 527,
        "H1_prior_index": 2016,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 527,
        "H1_prior_index": 2017,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 527,
        "H1_prior_index": 2018,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T20:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 527,
        "H1_prior_index": 2019,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 87,
        "H4_prior_index": 527,
        "H1_prior_index": 2019,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-06T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 528,
        "H1_prior_index": 2020,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-06T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-06T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 528,
        "H1_prior_index": 2021,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 528,
        "H1_prior_index": 2022,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4701.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 528,
        "H1_prior_index": 2022,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2023,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2023,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T01:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4721.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2024,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2025,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2026,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 529,
        "H1_prior_index": 2026,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 530,
        "H1_prior_index": 2029,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4750.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 530,
        "H1_prior_index": 2029,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4744.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4753.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 530,
        "H1_prior_index": 2030,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 531,
        "H1_prior_index": 2031,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4738.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4739.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4736.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 531,
        "H1_prior_index": 2032,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 531,
        "H1_prior_index": 2033,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4747.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4752.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 532,
        "H1_prior_index": 2035,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 532,
        "H1_prior_index": 2036,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4764.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 532,
        "H1_prior_index": 2038,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4719.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 533,
        "H1_prior_index": 2040,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4716.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 533,
        "H1_prior_index": 2040,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 88,
        "H4_prior_index": 533,
        "H1_prior_index": 2041,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T20:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-07T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 534,
        "H1_prior_index": 2043,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-07T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-07T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4709.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 535,
        "H1_prior_index": 2046,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4732.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 535,
        "H1_prior_index": 2049,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4718.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 536,
        "H1_prior_index": 2050,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 536,
        "H1_prior_index": 2051,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4713.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 536,
        "H1_prior_index": 2053,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 537,
        "H1_prior_index": 2054,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 537,
        "H1_prior_index": 2054,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 537,
        "H1_prior_index": 2057,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4732.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2058,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T14:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4749.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2059,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2059,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2060,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2060,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 538,
        "H1_prior_index": 2060,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 539,
        "H1_prior_index": 2062,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4722.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-08T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4725.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 539,
        "H1_prior_index": 2064,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-08T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-08T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 89,
        "H4_prior_index": 539,
        "H1_prior_index": 2065,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-10T22:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-10T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4694.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-10T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 540,
        "H1_prior_index": 2067,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-10T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4696.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-10T23:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-10T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-10T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 540,
        "H1_prior_index": 2068,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 541,
        "H1_prior_index": 2070,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 541,
        "H1_prior_index": 2071,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 541,
        "H1_prior_index": 2071,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 541,
        "H1_prior_index": 2072,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 541,
        "H1_prior_index": 2072,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 542,
        "H1_prior_index": 2073,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4680.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 542,
        "H1_prior_index": 2075,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 542,
        "H1_prior_index": 2075,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4673.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4678.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 543,
        "H1_prior_index": 2077,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 543,
        "H1_prior_index": 2077,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T09:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4665.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4666.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4667.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4676.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 543,
        "H1_prior_index": 2080,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T12:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 543,
        "H1_prior_index": 2080,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4748.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 544,
        "H1_prior_index": 2082,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4734.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 544,
        "H1_prior_index": 2083,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 544,
        "H1_prior_index": 2083,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4733.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4721.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4724.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 545,
        "H1_prior_index": 2086,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4729.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 545,
        "H1_prior_index": 2087,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 545,
        "H1_prior_index": 2087,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T19:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 545,
        "H1_prior_index": 2087,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4737.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 90,
        "H4_prior_index": 545,
        "H1_prior_index": 2088,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-11T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 546,
        "H1_prior_index": 2089,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-11T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-11T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4754.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 546,
        "H1_prior_index": 2091,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4773.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 547,
        "H1_prior_index": 2093,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 547,
        "H1_prior_index": 2093,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4733.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4730.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 547,
        "H1_prior_index": 2095,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 548,
        "H1_prior_index": 2096,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4722.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 548,
        "H1_prior_index": 2096,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 548,
        "H1_prior_index": 2097,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 548,
        "H1_prior_index": 2098,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 548,
        "H1_prior_index": 2099,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4704.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 549,
        "H1_prior_index": 2100,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T09:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T09:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 549,
        "H1_prior_index": 2100,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 549,
        "H1_prior_index": 2102,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 549,
        "H1_prior_index": 2103,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T12:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 549,
        "H1_prior_index": 2103,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4708.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4711.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2104,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2105,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2105,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2105,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4668.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4670.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2107,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4675.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 550,
        "H1_prior_index": 2107,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4674.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4682.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 551,
        "H1_prior_index": 2108,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 551,
        "H1_prior_index": 2109,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4719.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 91,
        "H4_prior_index": 551,
        "H1_prior_index": 2111,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2112,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4720.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4722.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2113,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2113,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-12T23:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2113,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-12T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-12T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4723.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2114,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4727.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 552,
        "H1_prior_index": 2114,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 553,
        "H1_prior_index": 2115,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4710.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 553,
        "H1_prior_index": 2115,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T01:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4710.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 553,
        "H1_prior_index": 2116,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 553,
        "H1_prior_index": 2116,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 553,
        "H1_prior_index": 2118,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 554,
        "H1_prior_index": 2119,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4715.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 554,
        "H1_prior_index": 2121,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 554,
        "H1_prior_index": 2122,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 555,
        "H1_prior_index": 2124,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 555,
        "H1_prior_index": 2124,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 555,
        "H1_prior_index": 2125,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4694.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 556,
        "H1_prior_index": 2127,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4683.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4691.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4701.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 557,
        "H1_prior_index": 2132,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4694.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4690.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 557,
        "H1_prior_index": 2133,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 557,
        "H1_prior_index": 2133,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4689.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 92,
        "H4_prior_index": 557,
        "H1_prior_index": 2134,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4693.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-13T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4700.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-13T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-13T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 558,
        "H1_prior_index": 2136,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 558,
        "H1_prior_index": 2137,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 558,
        "H1_prior_index": 2137,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 559,
        "H1_prior_index": 2138,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 559,
        "H1_prior_index": 2138,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4695.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4694.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4699.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T04:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 559,
        "H1_prior_index": 2141,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4712.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 560,
        "H1_prior_index": 2142,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4701.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4703.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 560,
        "H1_prior_index": 2144,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4706.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2146,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2146,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4697.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4705.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2147,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2147,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4698.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4704.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2149,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4710.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T12:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 561,
        "H1_prior_index": 2149,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4707.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4691.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 562,
        "H1_prior_index": 2151,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 562,
        "H1_prior_index": 2152,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4689.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 562,
        "H1_prior_index": 2152,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4687.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4682.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4683.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 563,
        "H1_prior_index": 2154,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4681.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 563,
        "H1_prior_index": 2155,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T19:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 563,
        "H1_prior_index": 2156,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4672.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 93,
        "H4_prior_index": 563,
        "H1_prior_index": 2157,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4653.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4662.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4663.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 94,
        "H4_prior_index": 564,
        "H1_prior_index": 2159,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-14T23:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 94,
        "H4_prior_index": 564,
        "H1_prior_index": 2159,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-14T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-14T23:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4665.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4610.16,
        "D_prior_index": 94,
        "H4_prior_index": 564,
        "H1_prior_index": 2160,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4658.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4631.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.76,
        "D_prior_index": 94,
        "H4_prior_index": 565,
        "H1_prior_index": 2161,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.51,
        "D_prior_index": 94,
        "H4_prior_index": 565,
        "H1_prior_index": 2161,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4624.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4609.45,
        "D_prior_index": 94,
        "H4_prior_index": 565,
        "H1_prior_index": 2162,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4623.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4607.68,
        "D_prior_index": 94,
        "H4_prior_index": 565,
        "H1_prior_index": 2163,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4581.02,
        "D_prior_index": 94,
        "H4_prior_index": 566,
        "H1_prior_index": 2165,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.52,
        "D_prior_index": 94,
        "H4_prior_index": 566,
        "H1_prior_index": 2166,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4564.535,
        "D_prior_index": 94,
        "H4_prior_index": 566,
        "H1_prior_index": 2166,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.835,
        "D_prior_index": 94,
        "H4_prior_index": 566,
        "H1_prior_index": 2168,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.055,
        "D_prior_index": 94,
        "H4_prior_index": 566,
        "H1_prior_index": 2168,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.53,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2169,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4531.995,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2169,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4549.595,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2170,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4559.165,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2171,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.005,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2171,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.14,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2172,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.83,
        "D_prior_index": 94,
        "H4_prior_index": 567,
        "H1_prior_index": 2172,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.285,
        "D_prior_index": 94,
        "H4_prior_index": 568,
        "H1_prior_index": 2173,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.985,
        "D_prior_index": 94,
        "H4_prior_index": 568,
        "H1_prior_index": 2173,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4546.21,
        "D_prior_index": 94,
        "H4_prior_index": 568,
        "H1_prior_index": 2174,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.22,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2177,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.11,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2178,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.065,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2178,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-15T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.415,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2178,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4548.66,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2179,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4533.34,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2180,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-15T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-15T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.78,
        "D_prior_index": 94,
        "H4_prior_index": 569,
        "H1_prior_index": 2180,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-17T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-17T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-17T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-17T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-17T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-17T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4532.685,
        "D_prior_index": 95,
        "H4_prior_index": 570,
        "H1_prior_index": 2182,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-17T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-17T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4532.25,
        "D_prior_index": 95,
        "H4_prior_index": 570,
        "H1_prior_index": 2182,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-17T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-17T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T00:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4480.41,
        "D_prior_index": 95,
        "H4_prior_index": 570,
        "H1_prior_index": 2183,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4529.48,
        "D_prior_index": 95,
        "H4_prior_index": 571,
        "H1_prior_index": 2185,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.565,
        "D_prior_index": 95,
        "H4_prior_index": 571,
        "H1_prior_index": 2186,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4533.225,
        "D_prior_index": 95,
        "H4_prior_index": 572,
        "H1_prior_index": 2188,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4530.005,
        "D_prior_index": 95,
        "H4_prior_index": 572,
        "H1_prior_index": 2189,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.465,
        "D_prior_index": 95,
        "H4_prior_index": 572,
        "H1_prior_index": 2190,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.38,
        "D_prior_index": 95,
        "H4_prior_index": 573,
        "H1_prior_index": 2192,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T10:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4532.145,
        "D_prior_index": 95,
        "H4_prior_index": 573,
        "H1_prior_index": 2193,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T10:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4529.96,
        "D_prior_index": 95,
        "H4_prior_index": 573,
        "H1_prior_index": 2194,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4547.41,
        "D_prior_index": 95,
        "H4_prior_index": 573,
        "H1_prior_index": 2195,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.36,
        "D_prior_index": 95,
        "H4_prior_index": 573,
        "H1_prior_index": 2195,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4561.975,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2196,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4563.835,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2196,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4559.575,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2197,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.82,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2197,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.81,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2197,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4531.85,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2198,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.17,
        "D_prior_index": 95,
        "H4_prior_index": 574,
        "H1_prior_index": 2198,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T16:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4561.695,
        "D_prior_index": 95,
        "H4_prior_index": 575,
        "H1_prior_index": 2203,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-18T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-18T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-18T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4582.97,
        "D_prior_index": 96,
        "H4_prior_index": 576,
        "H1_prior_index": 2205,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.255,
        "D_prior_index": 96,
        "H4_prior_index": 576,
        "H1_prior_index": 2206,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.795,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2207,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T01:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4554.27,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2207,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4551.7,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2208,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4551.165,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2208,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.77,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2209,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.345,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2210,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.075,
        "D_prior_index": 96,
        "H4_prior_index": 577,
        "H1_prior_index": 2210,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T06:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.15,
        "D_prior_index": 96,
        "H4_prior_index": 578,
        "H1_prior_index": 2212,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.225,
        "D_prior_index": 96,
        "H4_prior_index": 578,
        "H1_prior_index": 2213,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.05,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2215,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.205,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2215,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4536.15,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2216,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.815,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2217,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4527.6,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2218,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.595,
        "D_prior_index": 96,
        "H4_prior_index": 579,
        "H1_prior_index": 2218,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4486.305,
        "D_prior_index": 96,
        "H4_prior_index": 580,
        "H1_prior_index": 2220,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4496.385,
        "D_prior_index": 96,
        "H4_prior_index": 580,
        "H1_prior_index": 2222,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.77,
        "D_prior_index": 96,
        "H4_prior_index": 580,
        "H1_prior_index": 2222,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4503.555,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2223,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4502.935,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2223,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.44,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2224,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T18:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.33,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2224,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4481.07,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2226,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4482.085,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2226,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4481.8,
        "D_prior_index": 96,
        "H4_prior_index": 581,
        "H1_prior_index": 2226,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-19T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4477.45,
        "D_prior_index": 97,
        "H4_prior_index": 582,
        "H1_prior_index": 2227,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-19T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-19T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4479.82,
        "D_prior_index": 97,
        "H4_prior_index": 582,
        "H1_prior_index": 2229,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.385,
        "D_prior_index": 97,
        "H4_prior_index": 582,
        "H1_prior_index": 2229,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.68,
        "D_prior_index": 97,
        "H4_prior_index": 583,
        "H1_prior_index": 2231,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4462.505,
        "D_prior_index": 97,
        "H4_prior_index": 583,
        "H1_prior_index": 2233,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4460.57,
        "D_prior_index": 97,
        "H4_prior_index": 583,
        "H1_prior_index": 2233,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4456.8,
        "D_prior_index": 97,
        "H4_prior_index": 583,
        "H1_prior_index": 2233,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4463.46,
        "D_prior_index": 97,
        "H4_prior_index": 584,
        "H1_prior_index": 2234,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4476.16,
        "D_prior_index": 97,
        "H4_prior_index": 584,
        "H1_prior_index": 2236,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4475.105,
        "D_prior_index": 97,
        "H4_prior_index": 584,
        "H1_prior_index": 2236,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T08:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4476.875,
        "D_prior_index": 97,
        "H4_prior_index": 584,
        "H1_prior_index": 2237,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4472.805,
        "D_prior_index": 97,
        "H4_prior_index": 585,
        "H1_prior_index": 2238,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T09:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T11:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4491.255,
        "D_prior_index": 97,
        "H4_prior_index": 585,
        "H1_prior_index": 2240,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.905,
        "D_prior_index": 97,
        "H4_prior_index": 585,
        "H1_prior_index": 2240,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.07,
        "D_prior_index": 97,
        "H4_prior_index": 585,
        "H1_prior_index": 2241,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.995,
        "D_prior_index": 97,
        "H4_prior_index": 586,
        "H1_prior_index": 2242,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.25,
        "D_prior_index": 97,
        "H4_prior_index": 586,
        "H1_prior_index": 2242,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4482.26,
        "D_prior_index": 97,
        "H4_prior_index": 586,
        "H1_prior_index": 2242,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4527.36,
        "D_prior_index": 97,
        "H4_prior_index": 586,
        "H1_prior_index": 2244,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4531.02,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2246,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4529.995,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2246,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4529.12,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2247,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.39,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2249,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.155,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2249,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4542.595,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2249,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4542.18,
        "D_prior_index": 97,
        "H4_prior_index": 587,
        "H1_prior_index": 2249,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4535.35,
        "D_prior_index": 98,
        "H4_prior_index": 588,
        "H1_prior_index": 2250,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.205,
        "D_prior_index": 98,
        "H4_prior_index": 588,
        "H1_prior_index": 2250,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-20T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-20T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-20T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.74,
        "D_prior_index": 98,
        "H4_prior_index": 588,
        "H1_prior_index": 2251,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.205,
        "D_prior_index": 98,
        "H4_prior_index": 588,
        "H1_prior_index": 2252,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.365,
        "D_prior_index": 98,
        "H4_prior_index": 588,
        "H1_prior_index": 2252,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.92,
        "D_prior_index": 98,
        "H4_prior_index": 589,
        "H1_prior_index": 2253,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4531.515,
        "D_prior_index": 98,
        "H4_prior_index": 589,
        "H1_prior_index": 2255,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4531.785,
        "D_prior_index": 98,
        "H4_prior_index": 589,
        "H1_prior_index": 2255,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4533.85,
        "D_prior_index": 98,
        "H4_prior_index": 589,
        "H1_prior_index": 2256,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.64,
        "D_prior_index": 98,
        "H4_prior_index": 590,
        "H1_prior_index": 2257,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.44,
        "D_prior_index": 98,
        "H4_prior_index": 590,
        "H1_prior_index": 2257,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.18,
        "D_prior_index": 98,
        "H4_prior_index": 590,
        "H1_prior_index": 2259,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.03,
        "D_prior_index": 98,
        "H4_prior_index": 591,
        "H1_prior_index": 2261,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.895,
        "D_prior_index": 98,
        "H4_prior_index": 591,
        "H1_prior_index": 2262,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.78,
        "D_prior_index": 98,
        "H4_prior_index": 591,
        "H1_prior_index": 2263,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4499.415,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2265,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4495.45,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2265,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4488.63,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2265,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.17,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2266,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4501.84,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2266,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4496.91,
        "D_prior_index": 98,
        "H4_prior_index": 592,
        "H1_prior_index": 2267,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T17:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4514.28,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2269,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4543.0,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2270,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4542.925,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2270,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.755,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2271,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.235,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2272,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.94,
        "D_prior_index": 98,
        "H4_prior_index": 593,
        "H1_prior_index": 2272,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.8,
        "D_prior_index": 99,
        "H4_prior_index": 594,
        "H1_prior_index": 2273,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.785,
        "D_prior_index": 99,
        "H4_prior_index": 594,
        "H1_prior_index": 2273,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-21T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-21T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-21T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4532.43,
        "D_prior_index": 99,
        "H4_prior_index": 594,
        "H1_prior_index": 2274,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4530.29,
        "D_prior_index": 99,
        "H4_prior_index": 594,
        "H1_prior_index": 2275,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4523.435,
        "D_prior_index": 99,
        "H4_prior_index": 595,
        "H1_prior_index": 2276,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4521.465,
        "D_prior_index": 99,
        "H4_prior_index": 595,
        "H1_prior_index": 2277,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4519.37,
        "D_prior_index": 99,
        "H4_prior_index": 595,
        "H1_prior_index": 2278,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T04:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4527.69,
        "D_prior_index": 99,
        "H4_prior_index": 595,
        "H1_prior_index": 2279,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T04:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.41,
        "D_prior_index": 99,
        "H4_prior_index": 595,
        "H1_prior_index": 2279,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4523.435,
        "D_prior_index": 99,
        "H4_prior_index": 596,
        "H1_prior_index": 2280,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4515.18,
        "D_prior_index": 99,
        "H4_prior_index": 597,
        "H1_prior_index": 2284,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4514.88,
        "D_prior_index": 99,
        "H4_prior_index": 597,
        "H1_prior_index": 2284,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.285,
        "D_prior_index": 99,
        "H4_prior_index": 597,
        "H1_prior_index": 2285,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4511.67,
        "D_prior_index": 99,
        "H4_prior_index": 597,
        "H1_prior_index": 2286,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.735,
        "D_prior_index": 99,
        "H4_prior_index": 597,
        "H1_prior_index": 2287,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.32,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2288,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4491.93,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2289,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T15:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4500.245,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2290,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4514.615,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2290,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4516.89,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2291,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T16:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4512.38,
        "D_prior_index": 99,
        "H4_prior_index": 598,
        "H1_prior_index": 2291,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4513.215,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2292,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-22T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4513.025,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2293,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4506.335,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2294,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.34,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2294,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4505.035,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2295,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-22T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-22T20:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.17,
        "D_prior_index": 99,
        "H4_prior_index": 599,
        "H1_prior_index": 2295,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-24T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-24T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4548.91,
        "D_prior_index": 100,
        "H4_prior_index": 600,
        "H1_prior_index": 2296,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-24T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-24T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-24T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-24T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4558.955,
        "D_prior_index": 100,
        "H4_prior_index": 601,
        "H1_prior_index": 2300,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T02:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4560.245,
        "D_prior_index": 100,
        "H4_prior_index": 601,
        "H1_prior_index": 2301,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4556.585,
        "D_prior_index": 100,
        "H4_prior_index": 601,
        "H1_prior_index": 2301,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4559.46,
        "D_prior_index": 100,
        "H4_prior_index": 601,
        "H1_prior_index": 2302,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.865,
        "D_prior_index": 100,
        "H4_prior_index": 602,
        "H1_prior_index": 2303,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4552.015,
        "D_prior_index": 100,
        "H4_prior_index": 602,
        "H1_prior_index": 2303,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4550.55,
        "D_prior_index": 100,
        "H4_prior_index": 602,
        "H1_prior_index": 2304,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T07:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.445,
        "D_prior_index": 100,
        "H4_prior_index": 602,
        "H1_prior_index": 2306,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.435,
        "D_prior_index": 100,
        "H4_prior_index": 602,
        "H1_prior_index": 2306,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.47,
        "D_prior_index": 100,
        "H4_prior_index": 603,
        "H1_prior_index": 2308,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4567.705,
        "D_prior_index": 100,
        "H4_prior_index": 603,
        "H1_prior_index": 2309,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4553.12,
        "D_prior_index": 100,
        "H4_prior_index": 603,
        "H1_prior_index": 2310,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4561.715,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2311,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4560.605,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2311,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4560.17,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2311,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T15:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T15:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4566.93,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2313,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.68,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2314,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T16:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4568.005,
        "D_prior_index": 100,
        "H4_prior_index": 604,
        "H1_prior_index": 2314,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-25T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4569.68,
        "D_prior_index": 101,
        "H4_prior_index": 606,
        "H1_prior_index": 2317,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-25T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-25T23:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.245,
        "D_prior_index": 101,
        "H4_prior_index": 606,
        "H1_prior_index": 2319,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.595,
        "D_prior_index": 101,
        "H4_prior_index": 606,
        "H1_prior_index": 2319,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.815,
        "D_prior_index": 101,
        "H4_prior_index": 607,
        "H1_prior_index": 2320,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4540.74,
        "D_prior_index": 101,
        "H4_prior_index": 607,
        "H1_prior_index": 2322,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4523.59,
        "D_prior_index": 101,
        "H4_prior_index": 607,
        "H1_prior_index": 2323,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4523.005,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2324,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.035,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2324,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.475,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2325,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.93,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2326,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4522.175,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2326,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4521.68,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2326,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4520.11,
        "D_prior_index": 101,
        "H4_prior_index": 608,
        "H1_prior_index": 2327,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4519.42,
        "D_prior_index": 101,
        "H4_prior_index": 609,
        "H1_prior_index": 2328,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4518.275,
        "D_prior_index": 101,
        "H4_prior_index": 609,
        "H1_prior_index": 2328,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4503.615,
        "D_prior_index": 101,
        "H4_prior_index": 609,
        "H1_prior_index": 2330,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4503.715,
        "D_prior_index": 101,
        "H4_prior_index": 609,
        "H1_prior_index": 2331,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4500.785,
        "D_prior_index": 101,
        "H4_prior_index": 609,
        "H1_prior_index": 2331,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4502.41,
        "D_prior_index": 101,
        "H4_prior_index": 610,
        "H1_prior_index": 2334,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4499.845,
        "D_prior_index": 101,
        "H4_prior_index": 610,
        "H1_prior_index": 2335,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4506.145,
        "D_prior_index": 101,
        "H4_prior_index": 611,
        "H1_prior_index": 2339,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.2,
        "D_prior_index": 101,
        "H4_prior_index": 611,
        "H1_prior_index": 2339,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4500.88,
        "D_prior_index": 102,
        "H4_prior_index": 612,
        "H1_prior_index": 2340,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-26T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.485,
        "D_prior_index": 102,
        "H4_prior_index": 612,
        "H1_prior_index": 2341,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-26T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-26T23:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4517.265,
        "D_prior_index": 102,
        "H4_prior_index": 612,
        "H1_prior_index": 2342,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4514.315,
        "D_prior_index": 102,
        "H4_prior_index": 612,
        "H1_prior_index": 2342,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4512.635,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2343,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4499.245,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2344,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T02:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.96,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2344,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T02:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.075,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2344,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T02:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4496.065,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2346,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T04:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4497.905,
        "D_prior_index": 102,
        "H4_prior_index": 613,
        "H1_prior_index": 2346,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4508.545,
        "D_prior_index": 102,
        "H4_prior_index": 614,
        "H1_prior_index": 2347,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4479.87,
        "D_prior_index": 102,
        "H4_prior_index": 614,
        "H1_prior_index": 2348,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4475.985,
        "D_prior_index": 102,
        "H4_prior_index": 614,
        "H1_prior_index": 2349,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T08:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4486.13,
        "D_prior_index": 102,
        "H4_prior_index": 614,
        "H1_prior_index": 2350,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4432.51,
        "D_prior_index": 102,
        "H4_prior_index": 615,
        "H1_prior_index": 2353,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4427.66,
        "D_prior_index": 102,
        "H4_prior_index": 615,
        "H1_prior_index": 2354,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.8,
        "D_prior_index": 102,
        "H4_prior_index": 616,
        "H1_prior_index": 2356,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4431.135,
        "D_prior_index": 102,
        "H4_prior_index": 616,
        "H1_prior_index": 2357,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4450.155,
        "D_prior_index": 102,
        "H4_prior_index": 617,
        "H1_prior_index": 2359,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4447.795,
        "D_prior_index": 102,
        "H4_prior_index": 617,
        "H1_prior_index": 2360,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.775,
        "D_prior_index": 102,
        "H4_prior_index": 617,
        "H1_prior_index": 2361,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.705,
        "D_prior_index": 102,
        "H4_prior_index": 617,
        "H1_prior_index": 2361,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4448.905,
        "D_prior_index": 102,
        "H4_prior_index": 617,
        "H1_prior_index": 2361,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4455.31,
        "D_prior_index": 103,
        "H4_prior_index": 618,
        "H1_prior_index": 2363,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-27T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-27T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-27T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.175,
        "D_prior_index": 103,
        "H4_prior_index": 618,
        "H1_prior_index": 2364,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.02,
        "D_prior_index": 103,
        "H4_prior_index": 618,
        "H1_prior_index": 2365,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T00:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4443.7,
        "D_prior_index": 103,
        "H4_prior_index": 618,
        "H1_prior_index": 2365,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4416.005,
        "D_prior_index": 103,
        "H4_prior_index": 619,
        "H1_prior_index": 2366,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4390.12,
        "D_prior_index": 103,
        "H4_prior_index": 619,
        "H1_prior_index": 2368,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4368.605,
        "D_prior_index": 103,
        "H4_prior_index": 619,
        "H1_prior_index": 2368,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4368.42,
        "D_prior_index": 103,
        "H4_prior_index": 619,
        "H1_prior_index": 2369,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4367.215,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2370,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4374.31,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2371,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4385.54,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2372,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4382.9,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2372,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4386.215,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2373,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4385.99,
        "D_prior_index": 103,
        "H4_prior_index": 620,
        "H1_prior_index": 2373,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4389.8,
        "D_prior_index": 103,
        "H4_prior_index": 621,
        "H1_prior_index": 2374,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4381.01,
        "D_prior_index": 103,
        "H4_prior_index": 621,
        "H1_prior_index": 2376,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4420.87,
        "D_prior_index": 103,
        "H4_prior_index": 622,
        "H1_prior_index": 2379,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4477.685,
        "D_prior_index": 103,
        "H4_prior_index": 622,
        "H1_prior_index": 2381,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4505.385,
        "D_prior_index": 103,
        "H4_prior_index": 623,
        "H1_prior_index": 2383,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.645,
        "D_prior_index": 103,
        "H4_prior_index": 623,
        "H1_prior_index": 2383,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4494.775,
        "D_prior_index": 103,
        "H4_prior_index": 623,
        "H1_prior_index": 2385,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-28T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-28T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-28T23:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4488.975,
        "D_prior_index": 104,
        "H4_prior_index": 624,
        "H1_prior_index": 2387,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.445,
        "D_prior_index": 104,
        "H4_prior_index": 624,
        "H1_prior_index": 2388,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4492.42,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2389,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T01:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4502.605,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2389,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4501.295,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2389,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4498.6,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2390,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4494.935,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2391,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4508.125,
        "D_prior_index": 104,
        "H4_prior_index": 625,
        "H1_prior_index": 2392,
        "pre_local_high": 4625.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4615.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.03,
        "D_prior_index": 104,
        "H4_prior_index": 626,
        "H1_prior_index": 2394,
        "pre_local_high": 4625.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4524.14,
        "D_prior_index": 104,
        "H4_prior_index": 626,
        "H1_prior_index": 2395,
        "pre_local_low": 4510.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4526.2,
        "D_prior_index": 104,
        "H4_prior_index": 626,
        "H1_prior_index": 2395,
        "pre_local_low": 4510.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4512.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4509.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4532.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4532.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4539.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-05-29T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.935,
        "D_prior_index": 104,
        "H4_prior_index": 627,
        "H1_prior_index": 2399,
        "pre_local_high": 4543.31,
        "confirmation_time": "2026-05-29T14:00:00Z",
        "impulse_extreme": 4549.28,
        "fib50": 4537.608,
        "fib62": 4534.806,
        "entry_mid": 4536.207,
        "invalid": 4525.935,
        "risk_points": 10.272,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-05-29T14:20:00Z",
        "target1": 4546.479,
        "target2": 4556.75,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4526.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4524.15,
        "D_prior_index": 104,
        "H4_prior_index": 627,
        "H1_prior_index": 2400,
        "pre_local_low": 4512.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4527.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-05-29T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.38,
        "D_prior_index": 104,
        "H4_prior_index": 628,
        "H1_prior_index": 2402,
        "pre_local_high": 4552.655,
        "confirmation_time": "2026-05-29T14:50:00Z",
        "impulse_extreme": 4569.3,
        "fib50": 4547.34,
        "fib62": 4542.07,
        "entry_mid": 4544.705,
        "invalid": 4525.38,
        "risk_points": 19.325,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-05-29T19:50:00Z",
        "target1": 4564.03,
        "target2": 4583.354,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4557.56,
        "D_prior_index": 104,
        "H4_prior_index": 628,
        "H1_prior_index": 2403,
        "pre_local_high": 4595.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4572.29,
        "D_prior_index": 104,
        "H4_prior_index": 628,
        "H1_prior_index": 2404,
        "pre_local_low": 4525.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4551.715,
        "D_prior_index": 104,
        "H4_prior_index": 629,
        "H1_prior_index": 2405,
        "pre_local_high": 4573.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4561.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-29T20:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4542.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-29T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-29T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4541.555,
        "D_prior_index": 104,
        "H4_prior_index": 629,
        "H1_prior_index": 2408,
        "pre_local_high": 4560.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-31T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4536.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-31T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4531.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-31T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4536.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-31T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4540.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-05-31T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4538.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-31T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.845,
        "D_prior_index": 105,
        "H4_prior_index": 630,
        "H1_prior_index": 2410,
        "pre_local_low": 4520.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-05-31T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-05-31T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4538.655,
        "D_prior_index": 105,
        "H4_prior_index": 630,
        "H1_prior_index": 2410,
        "pre_local_high": 4545.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4537.41,
        "D_prior_index": 105,
        "H4_prior_index": 630,
        "H1_prior_index": 2411,
        "pre_local_high": 4546.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4546.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-01T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4545.24,
        "D_prior_index": 105,
        "H4_prior_index": 630,
        "H1_prior_index": 2411,
        "pre_local_low": 4534.88,
        "confirmation_time": "2026-06-01T01:00:00Z",
        "impulse_extreme": 4531.955,
        "fib50": 4538.597,
        "fib62": 4540.192,
        "entry_mid": 4539.395,
        "invalid": 4545.24,
        "risk_points": 5.845,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4527.285,
        "D_prior_index": 105,
        "H4_prior_index": 631,
        "H1_prior_index": 2412,
        "pre_local_high": 4546.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T02:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4534.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-01T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.825,
        "D_prior_index": 105,
        "H4_prior_index": 631,
        "H1_prior_index": 2413,
        "pre_local_low": 4523.715,
        "confirmation_time": "2026-06-01T02:40:00Z",
        "impulse_extreme": 4522.44,
        "fib50": 4528.632,
        "fib62": 4530.119,
        "entry_mid": 4529.376,
        "invalid": 4534.825,
        "risk_points": 5.449,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4525.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4513.96,
        "D_prior_index": 105,
        "H4_prior_index": 631,
        "H1_prior_index": 2414,
        "pre_local_high": 4534.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T03:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4524.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4509.965,
        "D_prior_index": 105,
        "H4_prior_index": 631,
        "H1_prior_index": 2414,
        "pre_local_high": 4534.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4519.74,
        "D_prior_index": 105,
        "H4_prior_index": 631,
        "H1_prior_index": 2415,
        "pre_local_low": 4509.965,
        "confirmation_time": "2026-06-01T06:20:00Z",
        "impulse_extreme": 4504.98,
        "fib50": 4512.36,
        "fib62": 4514.131,
        "entry_mid": 4513.246,
        "invalid": 4519.74,
        "risk_points": 6.494,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-01T06:25:00Z",
        "target1": 4506.751,
        "target2": 4500.257,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4508.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4512.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4525.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4504.98
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4492.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T08:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4504.69,
        "D_prior_index": 105,
        "H4_prior_index": 632,
        "H1_prior_index": 2419,
        "pre_local_low": 4492.59,
        "confirmation_time": "2026-06-01T09:30:00Z",
        "impulse_extreme": 4489.095,
        "fib50": 4496.892,
        "fib62": 4498.764,
        "entry_mid": 4497.828,
        "invalid": 4504.69,
        "risk_points": 6.862,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-01T09:35:00Z",
        "target1": 4490.966,
        "target2": 4484.105,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.45,
        "D_prior_index": 105,
        "H4_prior_index": 632,
        "H1_prior_index": 2419,
        "pre_local_high": 4510.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4502.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4506.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4489.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4503.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4511.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4499.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4497.62,
        "D_prior_index": 105,
        "H4_prior_index": 633,
        "H1_prior_index": 2423,
        "pre_local_high": 4513.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4508.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T12:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4510.55,
        "D_prior_index": 105,
        "H4_prior_index": 633,
        "H1_prior_index": 2423,
        "pre_local_low": 4497.62,
        "confirmation_time": "2026-06-01T13:10:00Z",
        "impulse_extreme": 4472.465,
        "fib50": 4491.507,
        "fib62": 4496.078,
        "entry_mid": 4493.793,
        "invalid": 4510.55,
        "risk_points": 16.757,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-01T17:40:00Z",
        "target1": 4477.035,
        "target2": 4460.278,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4459.17,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2424,
        "pre_local_high": 4510.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4447.86,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2425,
        "pre_local_high": 4510.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4464.845,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2425,
        "pre_local_low": 4447.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4452.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4478.51,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2427,
        "pre_local_low": 4449.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4463.07,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2427,
        "pre_local_high": 4479.885,
        "confirmation_time": "2026-06-01T16:50:00Z",
        "impulse_extreme": 4480.915,
        "fib50": 4471.993,
        "fib62": 4469.851,
        "entry_mid": 4470.922,
        "invalid": 4463.07,
        "risk_points": 7.852,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-01T17:05:00Z",
        "target1": 4478.774,
        "target2": 4486.625,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4472.02,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2427,
        "pre_local_low": 4452.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T16:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4467.57,
        "D_prior_index": 105,
        "H4_prior_index": 634,
        "H1_prior_index": 2427,
        "pre_local_high": 4479.885,
        "confirmation_time": "2026-06-01T16:50:00Z",
        "impulse_extreme": 4480.915,
        "fib50": 4474.243,
        "fib62": 4472.641,
        "entry_mid": 4473.442,
        "invalid": 4467.57,
        "risk_points": 5.872,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-01T17:05:00Z",
        "target1": 4479.314,
        "target2": 4485.185,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4495.54,
        "D_prior_index": 105,
        "H4_prior_index": 635,
        "H1_prior_index": 2428,
        "pre_local_low": 4463.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4484.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4488.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4484.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4484.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-01T20:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4481.335,
        "D_prior_index": 105,
        "H4_prior_index": 635,
        "H1_prior_index": 2431,
        "pre_local_high": 4488.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T20:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4485.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T22:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4485.24,
        "D_prior_index": 106,
        "H4_prior_index": 636,
        "H1_prior_index": 2432,
        "pre_local_low": 4479.16,
        "confirmation_time": "2026-06-02T00:05:00Z",
        "impulse_extreme": 4476.91,
        "fib50": 4481.075,
        "fib62": 4482.075,
        "entry_mid": 4481.575,
        "invalid": 4485.24,
        "risk_points": 3.665,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T00:10:00Z",
        "target1": 4477.91,
        "target2": 4474.244,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-01T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4487.95,
        "D_prior_index": 106,
        "H4_prior_index": 636,
        "H1_prior_index": 2433,
        "pre_local_low": 4479.755,
        "confirmation_time": "2026-06-02T00:05:00Z",
        "impulse_extreme": 4476.91,
        "fib50": 4482.43,
        "fib62": 4483.755,
        "entry_mid": 4483.092,
        "invalid": 4487.95,
        "risk_points": 4.858,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T00:15:00Z",
        "target1": 4478.235,
        "target2": 4473.377,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4488.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-01T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-01T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-02T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4476.91,
        "D_prior_index": 106,
        "H4_prior_index": 636,
        "H1_prior_index": 2434,
        "pre_local_high": 4488.345,
        "confirmation_time": "2026-06-02T00:20:00Z",
        "impulse_extreme": 4489.87,
        "fib50": 4483.39,
        "fib62": 4481.835,
        "entry_mid": 4482.612,
        "invalid": 4476.91,
        "risk_points": 5.702,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T00:45:00Z",
        "target1": 4488.315,
        "target2": 4494.017,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-02T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4497.135,
        "D_prior_index": 106,
        "H4_prior_index": 636,
        "H1_prior_index": 2434,
        "pre_local_low": 4476.91,
        "confirmation_time": "2026-06-02T01:45:00Z",
        "impulse_extreme": 4471.855,
        "fib50": 4484.495,
        "fib62": 4487.529,
        "entry_mid": 4486.012,
        "invalid": 4497.135,
        "risk_points": 11.123,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T02:20:00Z",
        "target1": 4474.889,
        "target2": 4463.765,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4473.8,
        "D_prior_index": 106,
        "H4_prior_index": 637,
        "H1_prior_index": 2435,
        "pre_local_high": 4497.135,
        "confirmation_time": "2026-06-02T03:40:00Z",
        "impulse_extreme": 4497.535,
        "fib50": 4485.667,
        "fib62": 4482.819,
        "entry_mid": 4484.243,
        "invalid": 4473.8,
        "risk_points": 10.443,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4492.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4485.655,
        "D_prior_index": 106,
        "H4_prior_index": 637,
        "H1_prior_index": 2436,
        "pre_local_low": 4463.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T02:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4473.535,
        "D_prior_index": 106,
        "H4_prior_index": 637,
        "H1_prior_index": 2436,
        "pre_local_high": 4492.49,
        "confirmation_time": "2026-06-02T03:25:00Z",
        "impulse_extreme": 4497.76,
        "fib50": 4485.648,
        "fib62": 4482.74,
        "entry_mid": 4484.194,
        "invalid": 4473.535,
        "risk_points": 10.659,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4499.43,
        "D_prior_index": 106,
        "H4_prior_index": 637,
        "H1_prior_index": 2437,
        "pre_local_low": 4463.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4499.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4510.145
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4503.52,
        "D_prior_index": 106,
        "H4_prior_index": 637,
        "H1_prior_index": 2438,
        "pre_local_high": 4510.145,
        "confirmation_time": "2026-06-02T04:40:00Z",
        "impulse_extreme": 4511.17,
        "fib50": 4507.345,
        "fib62": 4506.427,
        "entry_mid": 4506.886,
        "invalid": 4503.52,
        "risk_points": 3.366,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4538.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4528.085,
        "D_prior_index": 106,
        "H4_prior_index": 638,
        "H1_prior_index": 2441,
        "pre_local_high": 4541.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4535.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4539.255,
        "D_prior_index": 106,
        "H4_prior_index": 638,
        "H1_prior_index": 2442,
        "pre_local_low": 4520.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T09:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.43,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2443,
        "pre_local_high": 4539.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T09:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4525.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4535.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4521.715,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2443,
        "pre_local_high": 4539.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4531.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4524.7,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2444,
        "pre_local_high": 4535.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4534.845,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2445,
        "pre_local_low": 4521.715,
        "confirmation_time": "2026-06-02T12:45:00Z",
        "impulse_extreme": 4519.995,
        "fib50": 4527.42,
        "fib62": 4529.202,
        "entry_mid": 4528.311,
        "invalid": 4534.845,
        "risk_points": 6.534,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4526.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4526.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4530.785,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2445,
        "pre_local_low": 4524.7,
        "confirmation_time": "2026-06-02T12:45:00Z",
        "impulse_extreme": 4519.995,
        "fib50": 4525.39,
        "fib62": 4526.685,
        "entry_mid": 4526.037,
        "invalid": 4530.785,
        "risk_points": 4.748,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4525.72,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2445,
        "pre_local_high": 4534.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4524.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4524.065,
        "D_prior_index": 106,
        "H4_prior_index": 639,
        "H1_prior_index": 2446,
        "pre_local_high": 4534.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4521.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4511.94,
        "D_prior_index": 106,
        "H4_prior_index": 640,
        "H1_prior_index": 2447,
        "pre_local_high": 4534.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4498.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4505.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4506.47,
        "D_prior_index": 106,
        "H4_prior_index": 640,
        "H1_prior_index": 2448,
        "pre_local_low": 4490.435,
        "confirmation_time": "2026-06-02T16:25:00Z",
        "impulse_extreme": 4490.29,
        "fib50": 4498.38,
        "fib62": 4500.322,
        "entry_mid": 4499.351,
        "invalid": 4506.47,
        "risk_points": 7.119,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-02T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4508.14,
        "D_prior_index": 106,
        "H4_prior_index": 640,
        "H1_prior_index": 2449,
        "pre_local_low": 4490.435,
        "confirmation_time": "2026-06-02T16:25:00Z",
        "impulse_extreme": 4490.29,
        "fib50": 4499.215,
        "fib62": 4501.357,
        "entry_mid": 4500.286,
        "invalid": 4508.14,
        "risk_points": 7.854,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4501.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4500.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4508.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-02T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4493.22,
        "D_prior_index": 106,
        "H4_prior_index": 641,
        "H1_prior_index": 2451,
        "pre_local_low": 4486.355,
        "confirmation_time": "2026-06-02T17:35:00Z",
        "impulse_extreme": 4482.14,
        "fib50": 4487.68,
        "fib62": 4489.01,
        "entry_mid": 4488.345,
        "invalid": 4493.22,
        "risk_points": 4.875,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T18:00:00Z",
        "target1": 4483.47,
        "target2": 4478.594,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4488.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4484.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4491.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4490.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4485.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-02T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.495,
        "D_prior_index": 106,
        "H4_prior_index": 641,
        "H1_prior_index": 2453,
        "pre_local_high": 4491.075,
        "confirmation_time": "2026-06-02T22:05:00Z",
        "impulse_extreme": 4493.32,
        "fib50": 4488.407,
        "fib62": 4487.229,
        "entry_mid": 4487.818,
        "invalid": 4483.495,
        "risk_points": 4.323,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-02T22:20:00Z",
        "target1": 4492.141,
        "target2": 4496.464,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4490.375,
        "D_prior_index": 106,
        "H4_prior_index": 641,
        "H1_prior_index": 2453,
        "pre_local_low": 4478.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4491.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4493.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4487.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-02T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4487.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-02T22:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4492.355,
        "D_prior_index": 107,
        "H4_prior_index": 642,
        "H1_prior_index": 2455,
        "pre_local_low": 4484.15,
        "confirmation_time": "2026-06-02T23:05:00Z",
        "impulse_extreme": 4480.955,
        "fib50": 4486.655,
        "fib62": 4488.023,
        "entry_mid": 4487.339,
        "invalid": 4492.355,
        "risk_points": 5.016,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T00:35:00Z",
        "target1": 4482.323,
        "target2": 4477.307,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-02T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-02T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4475.51,
        "D_prior_index": 107,
        "H4_prior_index": 642,
        "H1_prior_index": 2456,
        "pre_local_low": 4462.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4485.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4483.2,
        "D_prior_index": 107,
        "H4_prior_index": 643,
        "H1_prior_index": 2460,
        "pre_local_high": 4487.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4482.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4486.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-03T04:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4488.44,
        "D_prior_index": 107,
        "H4_prior_index": 643,
        "H1_prior_index": 2461,
        "pre_local_low": 4473.075,
        "confirmation_time": "2026-06-03T04:35:00Z",
        "impulse_extreme": 4470.965,
        "fib50": 4479.702,
        "fib62": 4481.8,
        "entry_mid": 4480.751,
        "invalid": 4488.44,
        "risk_points": 7.689,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4467.44,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2462,
        "pre_local_high": 4488.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4466.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4474.455,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2462,
        "pre_local_low": 4467.44,
        "confirmation_time": "2026-06-03T05:30:00Z",
        "impulse_extreme": 4459.155,
        "fib50": 4466.805,
        "fib62": 4468.641,
        "entry_mid": 4467.723,
        "invalid": 4474.455,
        "risk_points": 6.732,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T05:35:00Z",
        "target1": 4460.991,
        "target2": 4454.259,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4471.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4457.16,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2463,
        "pre_local_high": 4474.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4455.39,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2463,
        "pre_local_high": 4474.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4454.415,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2464,
        "pre_local_high": 4472.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4464.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4451.035,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2465,
        "pre_local_high": 4472.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4450.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4459.05,
        "D_prior_index": 107,
        "H4_prior_index": 644,
        "H1_prior_index": 2465,
        "pre_local_low": 4450.73,
        "confirmation_time": "2026-06-03T08:50:00Z",
        "impulse_extreme": 4442.835,
        "fib50": 4450.943,
        "fib62": 4452.888,
        "entry_mid": 4451.915,
        "invalid": 4459.05,
        "risk_points": 7.135,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T09:00:00Z",
        "target1": 4444.781,
        "target2": 4437.646,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4459.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T10:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4441.115,
        "D_prior_index": 107,
        "H4_prior_index": 645,
        "H1_prior_index": 2467,
        "pre_local_high": 4459.135,
        "confirmation_time": "2026-06-03T10:05:00Z",
        "impulse_extreme": 4467.185,
        "fib50": 4454.15,
        "fib62": 4451.022,
        "entry_mid": 4452.586,
        "invalid": 4441.115,
        "risk_points": 11.471,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T10:25:00Z",
        "target1": 4464.057,
        "target2": 4475.527,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4453.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.645,
        "D_prior_index": 107,
        "H4_prior_index": 645,
        "H1_prior_index": 2468,
        "pre_local_high": 4468.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4457.295,
        "D_prior_index": 107,
        "H4_prior_index": 645,
        "H1_prior_index": 2469,
        "pre_local_high": 4468.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T13:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4426.42,
        "D_prior_index": 107,
        "H4_prior_index": 646,
        "H1_prior_index": 2470,
        "pre_local_high": 4467.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.78,
        "D_prior_index": 107,
        "H4_prior_index": 646,
        "H1_prior_index": 2471,
        "pre_local_low": 4426.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4437.295,
        "D_prior_index": 107,
        "H4_prior_index": 646,
        "H1_prior_index": 2473,
        "pre_local_high": 4459.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.05,
        "D_prior_index": 107,
        "H4_prior_index": 646,
        "H1_prior_index": 2473,
        "pre_local_low": 4436.755,
        "confirmation_time": "2026-06-03T16:20:00Z",
        "impulse_extreme": 4434.09,
        "fib50": 4439.07,
        "fib62": 4440.265,
        "entry_mid": 4439.668,
        "invalid": 4444.05,
        "risk_points": 4.382,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T16:30:00Z",
        "target1": 4435.285,
        "target2": 4430.903,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-03T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4433.925,
        "D_prior_index": 107,
        "H4_prior_index": 646,
        "H1_prior_index": 2473,
        "pre_local_high": 4459.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.73,
        "D_prior_index": 107,
        "H4_prior_index": 647,
        "H1_prior_index": 2474,
        "pre_local_high": 4448.445,
        "confirmation_time": "2026-06-03T19:00:00Z",
        "impulse_extreme": 4449.43,
        "fib50": 4442.58,
        "fib62": 4440.936,
        "entry_mid": 4441.758,
        "invalid": 4435.73,
        "risk_points": 6.028,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T20:00:00Z",
        "target1": 4447.786,
        "target2": 4453.814,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T18:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4435.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4442.585,
        "D_prior_index": 107,
        "H4_prior_index": 647,
        "H1_prior_index": 2475,
        "pre_local_low": 4435.535,
        "confirmation_time": "2026-06-03T20:30:00Z",
        "impulse_extreme": 4433.25,
        "fib50": 4437.917,
        "fib62": 4439.038,
        "entry_mid": 4438.478,
        "invalid": 4442.585,
        "risk_points": 4.107,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T22:30:00Z",
        "target1": 4434.37,
        "target2": 4430.263,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4443.075,
        "D_prior_index": 107,
        "H4_prior_index": 647,
        "H1_prior_index": 2475,
        "pre_local_low": 4435.535,
        "confirmation_time": "2026-06-03T20:30:00Z",
        "impulse_extreme": 4433.25,
        "fib50": 4438.163,
        "fib62": 4439.341,
        "entry_mid": 4438.752,
        "invalid": 4443.075,
        "risk_points": 4.323,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-03T22:30:00Z",
        "target1": 4434.429,
        "target2": 4430.106,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4452.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4437.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4430.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4429.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-03T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4423.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-03T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-03T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4446.35,
        "D_prior_index": 108,
        "H4_prior_index": 648,
        "H1_prior_index": 2479,
        "pre_local_high": 4453.23,
        "confirmation_time": "2026-06-03T23:40:00Z",
        "impulse_extreme": 4454.225,
        "fib50": 4450.288,
        "fib62": 4449.343,
        "entry_mid": 4449.815,
        "invalid": 4446.35,
        "risk_points": 3.465,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T00:15:00Z",
        "target1": 4453.28,
        "target2": 4456.745,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4465.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-04T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.245,
        "D_prior_index": 108,
        "H4_prior_index": 648,
        "H1_prior_index": 2480,
        "pre_local_high": 4465.46,
        "confirmation_time": "2026-06-04T01:20:00Z",
        "impulse_extreme": 4473.95,
        "fib50": 4459.097,
        "fib62": 4455.533,
        "entry_mid": 4457.315,
        "invalid": 4444.245,
        "risk_points": 13.07,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T01:40:00Z",
        "target1": 4470.385,
        "target2": 4483.456,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4453.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-04T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4443.18,
        "D_prior_index": 108,
        "H4_prior_index": 649,
        "H1_prior_index": 2481,
        "pre_local_high": 4465.46,
        "confirmation_time": "2026-06-04T01:20:00Z",
        "impulse_extreme": 4473.95,
        "fib50": 4458.565,
        "fib62": 4454.873,
        "entry_mid": 4456.719,
        "invalid": 4443.18,
        "risk_points": 13.539,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T01:50:00Z",
        "target1": 4470.258,
        "target2": 4483.796,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-04T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4456.96,
        "D_prior_index": 108,
        "H4_prior_index": 649,
        "H1_prior_index": 2481,
        "pre_local_high": 4473.95,
        "confirmation_time": "2026-06-04T02:50:00Z",
        "impulse_extreme": 4475.31,
        "fib50": 4466.135,
        "fib62": 4463.933,
        "entry_mid": 4465.034,
        "invalid": 4456.96,
        "risk_points": 8.074,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T03:25:00Z",
        "target1": 4473.108,
        "target2": 4481.182,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4455.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-04T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4457.985,
        "D_prior_index": 108,
        "H4_prior_index": 649,
        "H1_prior_index": 2482,
        "pre_local_high": 4473.95,
        "confirmation_time": "2026-06-04T02:50:00Z",
        "impulse_extreme": 4475.31,
        "fib50": 4466.648,
        "fib62": 4464.569,
        "entry_mid": 4465.608,
        "invalid": 4457.985,
        "risk_points": 7.623,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T03:25:00Z",
        "target1": 4473.231,
        "target2": 4480.854,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4464.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4477.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4471.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4470.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4477.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4476.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4462.425,
        "D_prior_index": 108,
        "H4_prior_index": 650,
        "H1_prior_index": 2487,
        "pre_local_high": 4477.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4470.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4459.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4468.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4469.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4459.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4469.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-04T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4461.775,
        "D_prior_index": 108,
        "H4_prior_index": 651,
        "H1_prior_index": 2489,
        "pre_local_high": 4469.595,
        "confirmation_time": "2026-06-04T09:45:00Z",
        "impulse_extreme": 4472.485,
        "fib50": 4467.13,
        "fib62": 4465.845,
        "entry_mid": 4466.487,
        "invalid": 4461.775,
        "risk_points": 4.712,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-04T10:20:00Z",
        "target1": 4471.2,
        "target2": 4475.912,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T10:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4472.98,
        "D_prior_index": 108,
        "H4_prior_index": 651,
        "H1_prior_index": 2490,
        "pre_local_low": 4460.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4478.87,
        "D_prior_index": 108,
        "H4_prior_index": 651,
        "H1_prior_index": 2491,
        "pre_local_low": 4461.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4492.705,
        "D_prior_index": 108,
        "H4_prior_index": 651,
        "H1_prior_index": 2491,
        "pre_local_low": 4464.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4491.185,
        "D_prior_index": 108,
        "H4_prior_index": 651,
        "H1_prior_index": 2492,
        "pre_local_high": 4514.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-04T13:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4515.515,
        "D_prior_index": 108,
        "H4_prior_index": 652,
        "H1_prior_index": 2493,
        "pre_local_low": 4491.185,
        "confirmation_time": "2026-06-04T14:05:00Z",
        "impulse_extreme": 4488.015,
        "fib50": 4501.765,
        "fib62": 4505.065,
        "entry_mid": 4503.415,
        "invalid": 4515.515,
        "risk_points": 12.1,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4484.105,
        "D_prior_index": 108,
        "H4_prior_index": 652,
        "H1_prior_index": 2494,
        "pre_local_high": 4515.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4477.43,
        "D_prior_index": 108,
        "H4_prior_index": 652,
        "H1_prior_index": 2495,
        "pre_local_low": 4457.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4485.17,
        "D_prior_index": 108,
        "H4_prior_index": 652,
        "H1_prior_index": 2496,
        "pre_local_low": 4457.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4481.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4476.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4481.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4479.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4483.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4480.58,
        "D_prior_index": 108,
        "H4_prior_index": 653,
        "H1_prior_index": 2499,
        "pre_local_low": 4472.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T19:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4476.925,
        "D_prior_index": 108,
        "H4_prior_index": 653,
        "H1_prior_index": 2499,
        "pre_local_high": 4483.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4474.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4473.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-04T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4476.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-04T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4481.625,
        "D_prior_index": 109,
        "H4_prior_index": 654,
        "H1_prior_index": 2501,
        "pre_local_low": 4473.895,
        "confirmation_time": "2026-06-04T22:45:00Z",
        "impulse_extreme": 4472.4,
        "fib50": 4477.012,
        "fib62": 4478.119,
        "entry_mid": 4477.566,
        "invalid": 4481.625,
        "risk_points": 4.059,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-04T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-04T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4464.2,
        "D_prior_index": 109,
        "H4_prior_index": 654,
        "H1_prior_index": 2502,
        "pre_local_high": 4481.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4450.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4452.965,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2504,
        "pre_local_high": 4473.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4470.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4449.435,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2504,
        "pre_local_high": 4470.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.265,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2504,
        "pre_local_high": 4470.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4442.435,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2505,
        "pre_local_high": 4470.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4436.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4435.305,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2506,
        "pre_local_high": 4456.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4444.135,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2506,
        "pre_local_low": 4436.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4443.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4438.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4445.01,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2507,
        "pre_local_low": 4435.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4437.69,
        "D_prior_index": 109,
        "H4_prior_index": 655,
        "H1_prior_index": 2507,
        "pre_local_high": 4450.015,
        "confirmation_time": "2026-06-05T06:45:00Z",
        "impulse_extreme": 4456.065,
        "fib50": 4446.877,
        "fib62": 4444.672,
        "entry_mid": 4445.775,
        "invalid": 4437.69,
        "risk_points": 8.085,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T12:35:00Z",
        "target1": 4453.86,
        "target2": 4461.945,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4444.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T05:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4442.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4439.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4438.795,
        "D_prior_index": 109,
        "H4_prior_index": 656,
        "H1_prior_index": 2508,
        "pre_local_high": 4450.26,
        "confirmation_time": "2026-06-05T06:45:00Z",
        "impulse_extreme": 4456.065,
        "fib50": 4447.43,
        "fib62": 4445.358,
        "entry_mid": 4446.394,
        "invalid": 4438.795,
        "risk_points": 7.599,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T12:30:00Z",
        "target1": 4453.993,
        "target2": 4461.591,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4448.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4428.72,
        "D_prior_index": 109,
        "H4_prior_index": 656,
        "H1_prior_index": 2509,
        "pre_local_high": 4450.26,
        "confirmation_time": "2026-06-05T06:45:00Z",
        "impulse_extreme": 4456.065,
        "fib50": 4442.392,
        "fib62": 4439.111,
        "entry_mid": 4440.752,
        "invalid": 4428.72,
        "risk_points": 12.032,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T12:35:00Z",
        "target1": 4452.784,
        "target2": 4464.815,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T06:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4446.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.725,
        "D_prior_index": 109,
        "H4_prior_index": 656,
        "H1_prior_index": 2511,
        "pre_local_high": 4467.34,
        "confirmation_time": "2026-06-05T09:15:00Z",
        "impulse_extreme": 4469.355,
        "fib50": 4464.04,
        "fib62": 4462.764,
        "entry_mid": 4463.402,
        "invalid": 4458.725,
        "risk_points": 4.677,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T09:25:00Z",
        "target1": 4468.079,
        "target2": 4472.757,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4468.355,
        "D_prior_index": 109,
        "H4_prior_index": 656,
        "H1_prior_index": 2511,
        "pre_local_low": 4449.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4458.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4459.305,
        "D_prior_index": 109,
        "H4_prior_index": 657,
        "H1_prior_index": 2512,
        "pre_local_high": 4469.465,
        "confirmation_time": "2026-06-05T11:50:00Z",
        "impulse_extreme": 4475.325,
        "fib50": 4467.315,
        "fib62": 4465.393,
        "entry_mid": 4466.354,
        "invalid": 4459.305,
        "risk_points": 7.049,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T12:00:00Z",
        "target1": 4473.403,
        "target2": 4480.451,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-05T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4469.315,
        "D_prior_index": 109,
        "H4_prior_index": 657,
        "H1_prior_index": 2512,
        "pre_local_low": 4458.895,
        "confirmation_time": "2026-06-05T12:30:00Z",
        "impulse_extreme": 4447.05,
        "fib50": 4458.182,
        "fib62": 4460.854,
        "entry_mid": 4459.518,
        "invalid": 4469.315,
        "risk_points": 9.797,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4467.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T11:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4458.28,
        "D_prior_index": 109,
        "H4_prior_index": 657,
        "H1_prior_index": 2514,
        "pre_local_high": 4469.315,
        "confirmation_time": "2026-06-05T11:50:00Z",
        "impulse_extreme": 4475.325,
        "fib50": 4466.802,
        "fib62": 4464.757,
        "entry_mid": 4465.78,
        "invalid": 4458.28,
        "risk_points": 7.5,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T12:00:00Z",
        "target1": 4473.28,
        "target2": 4480.779,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-05T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4467.235,
        "D_prior_index": 109,
        "H4_prior_index": 657,
        "H1_prior_index": 2514,
        "pre_local_low": 4458.28,
        "confirmation_time": "2026-06-05T12:30:00Z",
        "impulse_extreme": 4447.05,
        "fib50": 4457.142,
        "fib62": 4459.565,
        "entry_mid": 4458.354,
        "invalid": 4467.235,
        "risk_points": 8.881,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4461.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T12:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4475.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4400.085,
        "D_prior_index": 109,
        "H4_prior_index": 658,
        "H1_prior_index": 2516,
        "pre_local_high": 4475.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-05T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4421.235,
        "D_prior_index": 109,
        "H4_prior_index": 658,
        "H1_prior_index": 2516,
        "pre_local_low": 4400.085,
        "confirmation_time": "2026-06-05T13:35:00Z",
        "impulse_extreme": 4386.06,
        "fib50": 4403.648,
        "fib62": 4407.868,
        "entry_mid": 4405.758,
        "invalid": 4421.235,
        "risk_points": 15.477,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4364.135,
        "D_prior_index": 109,
        "H4_prior_index": 658,
        "H1_prior_index": 2517,
        "pre_local_high": 4475.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-05T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4372.615,
        "D_prior_index": 109,
        "H4_prior_index": 658,
        "H1_prior_index": 2518,
        "pre_local_low": 4344.605,
        "confirmation_time": "2026-06-05T15:35:00Z",
        "impulse_extreme": 4336.21,
        "fib50": 4354.413,
        "fib62": 4358.781,
        "entry_mid": 4356.597,
        "invalid": 4372.615,
        "risk_points": 16.018,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4334.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4323.27,
        "D_prior_index": 109,
        "H4_prior_index": 658,
        "H1_prior_index": 2519,
        "pre_local_high": 4372.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-05T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4347.055,
        "D_prior_index": 109,
        "H4_prior_index": 659,
        "H1_prior_index": 2520,
        "pre_local_low": 4323.27,
        "confirmation_time": "2026-06-05T18:10:00Z",
        "impulse_extreme": 4322.83,
        "fib50": 4334.943,
        "fib62": 4337.85,
        "entry_mid": 4336.396,
        "invalid": 4347.055,
        "risk_points": 10.659,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.715,
        "D_prior_index": 109,
        "H4_prior_index": 659,
        "H1_prior_index": 2520,
        "pre_local_high": 4349.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4347.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4338.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.86,
        "D_prior_index": 109,
        "H4_prior_index": 659,
        "H1_prior_index": 2521,
        "pre_local_high": 4347.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-05T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4314.005,
        "D_prior_index": 109,
        "H4_prior_index": 659,
        "H1_prior_index": 2522,
        "pre_local_high": 4347.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-05T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-05T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-05T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4325.215,
        "D_prior_index": 109,
        "H4_prior_index": 659,
        "H1_prior_index": 2522,
        "pre_local_low": 4314.005,
        "confirmation_time": "2026-06-05T20:00:00Z",
        "impulse_extreme": 4312.79,
        "fib50": 4319.003,
        "fib62": 4320.494,
        "entry_mid": 4319.748,
        "invalid": 4325.215,
        "risk_points": 5.467,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-05T20:20:00Z",
        "target1": 4314.281,
        "target2": 4308.814,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-07T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-07T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4310.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-07T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-07T22:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.885,
        "D_prior_index": 110,
        "H4_prior_index": 660,
        "H1_prior_index": 2524,
        "pre_local_low": 4310.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-07T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-07T22:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4315.395,
        "D_prior_index": 110,
        "H4_prior_index": 660,
        "H1_prior_index": 2524,
        "pre_local_high": 4330.885,
        "confirmation_time": "2026-06-07T23:10:00Z",
        "impulse_extreme": 4334.275,
        "fib50": 4324.835,
        "fib62": 4322.569,
        "entry_mid": 4323.702,
        "invalid": 4315.395,
        "risk_points": 8.307,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4347.1,
        "D_prior_index": 110,
        "H4_prior_index": 660,
        "H1_prior_index": 2526,
        "pre_local_low": 4315.395,
        "confirmation_time": "2026-06-08T01:25:00Z",
        "impulse_extreme": 4311.29,
        "fib50": 4329.195,
        "fib62": 4333.492,
        "entry_mid": 4331.344,
        "invalid": 4347.1,
        "risk_points": 15.756,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T01:45:00Z",
        "target1": 4315.587,
        "target2": 4299.831,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4340.06,
        "D_prior_index": 110,
        "H4_prior_index": 660,
        "H1_prior_index": 2526,
        "pre_local_high": 4353.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-08T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4346.18,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2527,
        "pre_local_low": 4328.755,
        "confirmation_time": "2026-06-08T01:10:00Z",
        "impulse_extreme": 4326.6,
        "fib50": 4336.39,
        "fib62": 4338.74,
        "entry_mid": 4337.565,
        "invalid": 4346.18,
        "risk_points": 8.615,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4300.025,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2527,
        "pre_local_high": 4353.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.0,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2527,
        "pre_local_low": 4300.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.855,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2528,
        "pre_local_low": 4300.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4311.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4307.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4320.865,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2528,
        "pre_local_low": 4300.025,
        "confirmation_time": "2026-06-08T05:30:00Z",
        "impulse_extreme": 4286.75,
        "fib50": 4303.807,
        "fib62": 4307.901,
        "entry_mid": 4305.854,
        "invalid": 4320.865,
        "risk_points": 15.011,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T06:00:00Z",
        "target1": 4290.844,
        "target2": 4275.833,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4303.66,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2529,
        "pre_local_high": 4330.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4322.005,
        "D_prior_index": 110,
        "H4_prior_index": 661,
        "H1_prior_index": 2530,
        "pre_local_low": 4303.66,
        "confirmation_time": "2026-06-08T05:30:00Z",
        "impulse_extreme": 4286.75,
        "fib50": 4304.378,
        "fib62": 4308.608,
        "entry_mid": 4306.493,
        "invalid": 4322.005,
        "risk_points": 15.512,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T06:00:00Z",
        "target1": 4290.981,
        "target2": 4275.468,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4316.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4304.55,
        "D_prior_index": 110,
        "H4_prior_index": 662,
        "H1_prior_index": 2531,
        "pre_local_high": 4322.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4311.525,
        "D_prior_index": 110,
        "H4_prior_index": 662,
        "H1_prior_index": 2532,
        "pre_local_low": 4268.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4293.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4316.96,
        "D_prior_index": 110,
        "H4_prior_index": 662,
        "H1_prior_index": 2533,
        "pre_local_low": 4268.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4285.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-08T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4293.92,
        "D_prior_index": 110,
        "H4_prior_index": 662,
        "H1_prior_index": 2534,
        "pre_local_low": 4285.415,
        "confirmation_time": "2026-06-08T09:25:00Z",
        "impulse_extreme": 4279.625,
        "fib50": 4286.773,
        "fib62": 4288.488,
        "entry_mid": 4287.63,
        "invalid": 4293.92,
        "risk_points": 6.29,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4284.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4273.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4302.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4286.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4333.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.47,
        "D_prior_index": 110,
        "H4_prior_index": 663,
        "H1_prior_index": 2537,
        "pre_local_high": 4333.455,
        "confirmation_time": "2026-06-08T12:40:00Z",
        "impulse_extreme": 4339.505,
        "fib50": 4330.488,
        "fib62": 4328.323,
        "entry_mid": 4329.405,
        "invalid": 4321.47,
        "risk_points": 7.935,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T12:50:00Z",
        "target1": 4337.341,
        "target2": 4345.276,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4334.935,
        "D_prior_index": 110,
        "H4_prior_index": 663,
        "H1_prior_index": 2538,
        "pre_local_low": 4289.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4320.28,
        "D_prior_index": 110,
        "H4_prior_index": 663,
        "H1_prior_index": 2538,
        "pre_local_high": 4334.935,
        "confirmation_time": "2026-06-08T12:40:00Z",
        "impulse_extreme": 4339.505,
        "fib50": 4329.892,
        "fib62": 4327.586,
        "entry_mid": 4328.739,
        "invalid": 4320.28,
        "risk_points": 8.459,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T12:50:00Z",
        "target1": 4337.198,
        "target2": 4345.657,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4327.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.3,
        "D_prior_index": 110,
        "H4_prior_index": 664,
        "H1_prior_index": 2539,
        "pre_local_high": 4339.505,
        "confirmation_time": "2026-06-08T13:35:00Z",
        "impulse_extreme": 4346.88,
        "fib50": 4334.09,
        "fib62": 4331.02,
        "entry_mid": 4332.555,
        "invalid": 4321.3,
        "risk_points": 11.255,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-08T13:45:00Z",
        "target1": 4343.81,
        "target2": 4355.066,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4336.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4316.01
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4314.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4336.465,
        "D_prior_index": 110,
        "H4_prior_index": 664,
        "H1_prior_index": 2541,
        "pre_local_low": 4314.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4322.67,
        "D_prior_index": 110,
        "H4_prior_index": 664,
        "H1_prior_index": 2541,
        "pre_local_high": 4346.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4344.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4337.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4336.2,
        "D_prior_index": 110,
        "H4_prior_index": 665,
        "H1_prior_index": 2543,
        "pre_local_high": 4346.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4333.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T17:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.025,
        "D_prior_index": 110,
        "H4_prior_index": 665,
        "H1_prior_index": 2543,
        "pre_local_high": 4346.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4346.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4338.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4323.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4328.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-08T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4322.88,
        "D_prior_index": 111,
        "H4_prior_index": 666,
        "H1_prior_index": 2547,
        "pre_local_high": 4330.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-08T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4325.34,
        "D_prior_index": 111,
        "H4_prior_index": 666,
        "H1_prior_index": 2548,
        "pre_local_high": 4330.4,
        "confirmation_time": "2026-06-09T01:25:00Z",
        "impulse_extreme": 4338.34,
        "fib50": 4331.84,
        "fib62": 4330.28,
        "entry_mid": 4331.06,
        "invalid": 4325.34,
        "risk_points": 5.72,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T02:00:00Z",
        "target1": 4336.78,
        "target2": 4342.5,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-08T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-08T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4312.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4323.775,
        "D_prior_index": 111,
        "H4_prior_index": 666,
        "H1_prior_index": 2549,
        "pre_local_low": 4312.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4315.225,
        "D_prior_index": 111,
        "H4_prior_index": 666,
        "H1_prior_index": 2549,
        "pre_local_high": 4328.93,
        "confirmation_time": "2026-06-09T01:25:00Z",
        "impulse_extreme": 4338.34,
        "fib50": 4326.783,
        "fib62": 4324.009,
        "entry_mid": 4325.396,
        "invalid": 4315.225,
        "risk_points": 10.171,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T04:30:00Z",
        "target1": 4335.566,
        "target2": 4345.737,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4315.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4338.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4328.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4341.005,
        "D_prior_index": 111,
        "H4_prior_index": 667,
        "H1_prior_index": 2551,
        "pre_local_low": 4320.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4331.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4341.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4342.275,
        "D_prior_index": 111,
        "H4_prior_index": 667,
        "H1_prior_index": 2552,
        "pre_local_low": 4328.315,
        "confirmation_time": "2026-06-09T04:30:00Z",
        "impulse_extreme": 4324.33,
        "fib50": 4333.302,
        "fib62": 4335.456,
        "entry_mid": 4334.379,
        "invalid": 4342.275,
        "risk_points": 7.896,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T05:00:00Z",
        "target1": 4326.483,
        "target2": 4318.588,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4341.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4337.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.83,
        "D_prior_index": 111,
        "H4_prior_index": 668,
        "H1_prior_index": 2554,
        "pre_local_high": 4341.875,
        "confirmation_time": "2026-06-09T05:30:00Z",
        "impulse_extreme": 4343.955,
        "fib50": 4337.392,
        "fib62": 4335.818,
        "entry_mid": 4336.605,
        "invalid": 4330.83,
        "risk_points": 5.775,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T06:30:00Z",
        "target1": 4342.38,
        "target2": 4348.155,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T06:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4340.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4323.17,
        "D_prior_index": 111,
        "H4_prior_index": 668,
        "H1_prior_index": 2556,
        "pre_local_high": 4351.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4322.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4330.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4337.02,
        "D_prior_index": 111,
        "H4_prior_index": 668,
        "H1_prior_index": 2557,
        "pre_local_low": 4321.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4325.315,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2558,
        "pre_local_high": 4337.02,
        "confirmation_time": "2026-06-09T10:55:00Z",
        "impulse_extreme": 4340.965,
        "fib50": 4333.14,
        "fib62": 4331.262,
        "entry_mid": 4332.201,
        "invalid": 4325.315,
        "risk_points": 6.886,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T13:20:00Z",
        "target1": 4339.087,
        "target2": 4345.973,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4336.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4325.2,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2559,
        "pre_local_high": 4337.02,
        "confirmation_time": "2026-06-09T10:55:00Z",
        "impulse_extreme": 4340.965,
        "fib50": 4333.083,
        "fib62": 4331.191,
        "entry_mid": 4332.137,
        "invalid": 4325.2,
        "risk_points": 6.937,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T13:20:00Z",
        "target1": 4339.073,
        "target2": 4346.01,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4336.78,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2559,
        "pre_local_low": 4324.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4329.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4340.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4343.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4344.09,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2561,
        "pre_local_low": 4329.865,
        "confirmation_time": "2026-06-09T13:55:00Z",
        "impulse_extreme": 4326.6,
        "fib50": 4335.345,
        "fib62": 4337.444,
        "entry_mid": 4336.394,
        "invalid": 4344.09,
        "risk_points": 7.696,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T14:00:00Z",
        "target1": 4328.699,
        "target2": 4321.003,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-09T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4334.97,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2561,
        "pre_local_high": 4344.09,
        "confirmation_time": "2026-06-09T13:45:00Z",
        "impulse_extreme": 4363.72,
        "fib50": 4349.345,
        "fib62": 4345.895,
        "entry_mid": 4347.62,
        "invalid": 4334.97,
        "risk_points": 12.65,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-09T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4344.39,
        "D_prior_index": 111,
        "H4_prior_index": 669,
        "H1_prior_index": 2561,
        "pre_local_low": 4334.97,
        "confirmation_time": "2026-06-09T13:15:00Z",
        "impulse_extreme": 4334.105,
        "fib50": 4339.247,
        "fib62": 4340.482,
        "entry_mid": 4339.865,
        "invalid": 4344.39,
        "risk_points": 4.525,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-09T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4345.62,
        "D_prior_index": 111,
        "H4_prior_index": 670,
        "H1_prior_index": 2562,
        "pre_local_low": 4334.97,
        "confirmation_time": "2026-06-09T13:15:00Z",
        "impulse_extreme": 4334.105,
        "fib50": 4339.862,
        "fib62": 4341.244,
        "entry_mid": 4340.553,
        "invalid": 4345.62,
        "risk_points": 5.067,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4363.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T14:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4278.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-09T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4302.235,
        "D_prior_index": 111,
        "H4_prior_index": 670,
        "H1_prior_index": 2564,
        "pre_local_low": 4278.58,
        "confirmation_time": "2026-06-09T15:30:00Z",
        "impulse_extreme": 4263.475,
        "fib50": 4282.855,
        "fib62": 4287.506,
        "entry_mid": 4285.181,
        "invalid": 4302.235,
        "risk_points": 17.054,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-09T15:45:00Z",
        "target1": 4268.126,
        "target2": 4251.072,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4263.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4286.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4253.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T16:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4267.775
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4268.01,
        "D_prior_index": 111,
        "H4_prior_index": 671,
        "H1_prior_index": 2566,
        "pre_local_low": 4236.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4268.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4256.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4266.95,
        "D_prior_index": 111,
        "H4_prior_index": 671,
        "H1_prior_index": 2567,
        "pre_local_low": 4236.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4262.275,
        "D_prior_index": 111,
        "H4_prior_index": 671,
        "H1_prior_index": 2567,
        "pre_local_high": 4274.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4271.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4260.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-09T19:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4249.96,
        "D_prior_index": 111,
        "H4_prior_index": 671,
        "H1_prior_index": 2568,
        "pre_local_high": 4274.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4261.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4257.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-09T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4262.195,
        "D_prior_index": 111,
        "H4_prior_index": 671,
        "H1_prior_index": 2569,
        "pre_local_low": 4249.96,
        "confirmation_time": "2026-06-09T22:40:00Z",
        "impulse_extreme": 4247.68,
        "fib50": 4254.938,
        "fib62": 4256.679,
        "entry_mid": 4255.808,
        "invalid": 4262.195,
        "risk_points": 6.387,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-09T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4257.605,
        "D_prior_index": 112,
        "H4_prior_index": 672,
        "H1_prior_index": 2570,
        "pre_local_low": 4251.005,
        "confirmation_time": "2026-06-09T22:40:00Z",
        "impulse_extreme": 4247.68,
        "fib50": 4252.642,
        "fib62": 4253.833,
        "entry_mid": 4253.238,
        "invalid": 4257.605,
        "risk_points": 4.367,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-09T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-09T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4210.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4228.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T00:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4221.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4187.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4183.89,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2573,
        "pre_local_high": 4228.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4178.27,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2574,
        "pre_local_high": 4221.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4174.215,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2574,
        "pre_local_high": 4221.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-10T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4192.455,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2574,
        "pre_local_low": 4174.215,
        "confirmation_time": "2026-06-10T02:55:00Z",
        "impulse_extreme": 4173.265,
        "fib50": 4182.86,
        "fib62": 4185.163,
        "entry_mid": 4184.011,
        "invalid": 4192.455,
        "risk_points": 8.444,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-10T03:35:00Z",
        "target1": 4175.568,
        "target2": 4167.124,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4173.115,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2575,
        "pre_local_high": 4213.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4181.16,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2575,
        "pre_local_low": 4173.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4183.135
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4187.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-10T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4172.565,
        "D_prior_index": 112,
        "H4_prior_index": 673,
        "H1_prior_index": 2576,
        "pre_local_high": 4187.215,
        "confirmation_time": "2026-06-10T05:25:00Z",
        "impulse_extreme": 4187.37,
        "fib50": 4179.967,
        "fib62": 4178.191,
        "entry_mid": 4179.079,
        "invalid": 4172.565,
        "risk_points": 6.514,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4176.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4179.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4166.285,
        "D_prior_index": 112,
        "H4_prior_index": 674,
        "H1_prior_index": 2580,
        "pre_local_high": 4208.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4164.38,
        "D_prior_index": 112,
        "H4_prior_index": 675,
        "H1_prior_index": 2581,
        "pre_local_high": 4195.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-10T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4175.09,
        "D_prior_index": 112,
        "H4_prior_index": 675,
        "H1_prior_index": 2581,
        "pre_local_low": 4161.47,
        "confirmation_time": "2026-06-10T10:05:00Z",
        "impulse_extreme": 4155.715,
        "fib50": 4165.403,
        "fib62": 4167.727,
        "entry_mid": 4166.565,
        "invalid": 4175.09,
        "risk_points": 8.525,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-10T10:20:00Z",
        "target1": 4158.04,
        "target2": 4149.515,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4179.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.195,
        "D_prior_index": 112,
        "H4_prior_index": 675,
        "H1_prior_index": 2581,
        "pre_local_high": 4179.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4130.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4170.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4113.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4137.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4107.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-10T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.045,
        "D_prior_index": 112,
        "H4_prior_index": 676,
        "H1_prior_index": 2588,
        "pre_local_low": 4107.03,
        "confirmation_time": "2026-06-10T17:35:00Z",
        "impulse_extreme": 4105.035,
        "fib50": 4119.04,
        "fib62": 4122.401,
        "entry_mid": 4120.721,
        "invalid": 4133.045,
        "risk_points": 12.324,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-10T18:00:00Z",
        "target1": 4108.396,
        "target2": 4096.072,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4135.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4116.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4114.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4135.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T17:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4100.985,
        "D_prior_index": 112,
        "H4_prior_index": 677,
        "H1_prior_index": 2589,
        "pre_local_high": 4135.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T17:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4113.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4109.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-10T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4081.73,
        "D_prior_index": 112,
        "H4_prior_index": 677,
        "H1_prior_index": 2591,
        "pre_local_high": 4120.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-10T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4092.615,
        "D_prior_index": 112,
        "H4_prior_index": 677,
        "H1_prior_index": 2591,
        "pre_local_low": 4081.755,
        "confirmation_time": "2026-06-10T20:00:00Z",
        "impulse_extreme": 4075.11,
        "fib50": 4083.863,
        "fib62": 4085.963,
        "entry_mid": 4084.913,
        "invalid": 4092.615,
        "risk_points": 7.702,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T01:00:00Z",
        "target1": 4077.211,
        "target2": 4069.508,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-10T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-10T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4059.715,
        "D_prior_index": 113,
        "H4_prior_index": 678,
        "H1_prior_index": 2595,
        "pre_local_low": 4023.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4076.895,
        "D_prior_index": 113,
        "H4_prior_index": 678,
        "H1_prior_index": 2595,
        "pre_local_low": 4023.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4078.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4052.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4078.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4085.675,
        "D_prior_index": 113,
        "H4_prior_index": 679,
        "H1_prior_index": 2599,
        "pre_local_low": 4052.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4074.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4086.155,
        "D_prior_index": 113,
        "H4_prior_index": 679,
        "H1_prior_index": 2599,
        "pre_local_low": 4057.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4106.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4098.535,
        "D_prior_index": 113,
        "H4_prior_index": 680,
        "H1_prior_index": 2602,
        "pre_local_low": 4072.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4110.64,
        "D_prior_index": 113,
        "H4_prior_index": 680,
        "H1_prior_index": 2602,
        "pre_local_low": 4076.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4099.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4112.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4080.86,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2604,
        "pre_local_high": 4112.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4089.025,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2604,
        "pre_local_low": 4080.86,
        "confirmation_time": "2026-06-11T09:25:00Z",
        "impulse_extreme": 4079.015,
        "fib50": 4084.02,
        "fib62": 4085.221,
        "entry_mid": 4084.621,
        "invalid": 4089.025,
        "risk_points": 4.404,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T09:35:00Z",
        "target1": 4080.216,
        "target2": 4075.812,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T09:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4077.645,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2604,
        "pre_local_high": 4112.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4096.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4088.24,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2605,
        "pre_local_high": 4105.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4094.74,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2605,
        "pre_local_low": 4077.645,
        "confirmation_time": "2026-06-11T12:10:00Z",
        "impulse_extreme": 4072.71,
        "fib50": 4083.725,
        "fib62": 4086.369,
        "entry_mid": 4085.047,
        "invalid": 4094.74,
        "risk_points": 9.693,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T12:55:00Z",
        "target1": 4075.354,
        "target2": 4065.66,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4086.71,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2605,
        "pre_local_high": 4096.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4093.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4083.62,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2606,
        "pre_local_high": 4096.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4081.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4096.07,
        "D_prior_index": 113,
        "H4_prior_index": 681,
        "H1_prior_index": 2606,
        "pre_local_low": 4083.62,
        "confirmation_time": "2026-06-11T11:55:00Z",
        "impulse_extreme": 4079.975,
        "fib50": 4088.023,
        "fib62": 4089.954,
        "entry_mid": 4088.988,
        "invalid": 4096.07,
        "risk_points": 7.082,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T13:45:00Z",
        "target1": 4081.906,
        "target2": 4074.825,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4057.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4086.22,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2608,
        "pre_local_low": 4057.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.285,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2608,
        "pre_local_high": 4087.735,
        "confirmation_time": "2026-06-11T15:40:00Z",
        "impulse_extreme": 4090.405,
        "fib50": 4078.845,
        "fib62": 4076.071,
        "entry_mid": 4077.458,
        "invalid": 4067.285,
        "risk_points": 10.173,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T16:30:00Z",
        "target1": 4087.631,
        "target2": 4097.803,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4082.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4070.38,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2610,
        "pre_local_high": 4092.92,
        "confirmation_time": "2026-06-11T16:10:00Z",
        "impulse_extreme": 4103.33,
        "fib50": 4086.855,
        "fib62": 4082.901,
        "entry_mid": 4084.878,
        "invalid": 4070.38,
        "risk_points": 14.498,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T16:25:00Z",
        "target1": 4099.376,
        "target2": 4113.874,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4087.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4089.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4090.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4095.655,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2610,
        "pre_local_low": 4052.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T16:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4107.755,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2611,
        "pre_local_low": 4070.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-11T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4078.66,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2611,
        "pre_local_high": 4107.755,
        "confirmation_time": "2026-06-11T17:30:00Z",
        "impulse_extreme": 4149.695,
        "fib50": 4114.177,
        "fib62": 4105.653,
        "entry_mid": 4109.915,
        "invalid": 4078.66,
        "risk_points": 31.255,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-11T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4078.03,
        "D_prior_index": 113,
        "H4_prior_index": 682,
        "H1_prior_index": 2611,
        "pre_local_high": 4107.755,
        "confirmation_time": "2026-06-11T17:30:00Z",
        "impulse_extreme": 4149.695,
        "fib50": 4113.863,
        "fib62": 4105.263,
        "entry_mid": 4109.563,
        "invalid": 4078.03,
        "risk_points": 31.533,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4163.04
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4171.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4218.69,
        "D_prior_index": 113,
        "H4_prior_index": 683,
        "H1_prior_index": 2615,
        "pre_local_low": 4149.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-11T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4216.5,
        "D_prior_index": 113,
        "H4_prior_index": 683,
        "H1_prior_index": 2615,
        "pre_local_low": 4160.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-11T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4209.285,
        "D_prior_index": 113,
        "H4_prior_index": 683,
        "H1_prior_index": 2615,
        "pre_local_high": 4220.22,
        "confirmation_time": "2026-06-11T22:40:00Z",
        "impulse_extreme": 4228.3,
        "fib50": 4218.792,
        "fib62": 4216.511,
        "entry_mid": 4217.652,
        "invalid": 4209.285,
        "risk_points": 8.367,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-11T23:20:00Z",
        "target1": 4226.018,
        "target2": 4234.385,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4206.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-11T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4205.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-11T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-11T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4224.64,
        "D_prior_index": 114,
        "H4_prior_index": 684,
        "H1_prior_index": 2617,
        "pre_local_low": 4205.51,
        "confirmation_time": "2026-06-12T00:40:00Z",
        "impulse_extreme": 4202.685,
        "fib50": 4213.663,
        "fib62": 4216.297,
        "entry_mid": 4214.98,
        "invalid": 4224.64,
        "risk_points": 9.66,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4212.775,
        "D_prior_index": 114,
        "H4_prior_index": 684,
        "H1_prior_index": 2618,
        "pre_local_high": 4246.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-12T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4225.895,
        "D_prior_index": 114,
        "H4_prior_index": 684,
        "H1_prior_index": 2618,
        "pre_local_low": 4205.51,
        "confirmation_time": "2026-06-12T00:40:00Z",
        "impulse_extreme": 4202.685,
        "fib50": 4214.29,
        "fib62": 4217.075,
        "entry_mid": 4215.683,
        "invalid": 4225.895,
        "risk_points": 10.212,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4207.315,
        "D_prior_index": 114,
        "H4_prior_index": 684,
        "H1_prior_index": 2618,
        "pre_local_high": 4246.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4230.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4200.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4210.98,
        "D_prior_index": 114,
        "H4_prior_index": 685,
        "H1_prior_index": 2619,
        "pre_local_low": 4183.97,
        "confirmation_time": "2026-06-12T01:25:00Z",
        "impulse_extreme": 4179.185,
        "fib50": 4195.083,
        "fib62": 4198.898,
        "entry_mid": 4196.99,
        "invalid": 4210.98,
        "risk_points": 13.99,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T02:05:00Z",
        "target1": 4183.0,
        "target2": 4169.011,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4171.405,
        "D_prior_index": 114,
        "H4_prior_index": 685,
        "H1_prior_index": 2619,
        "pre_local_high": 4230.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4193.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4204.995,
        "D_prior_index": 114,
        "H4_prior_index": 685,
        "H1_prior_index": 2621,
        "pre_local_low": 4182.91,
        "confirmation_time": "2026-06-12T05:30:00Z",
        "impulse_extreme": 4177.965,
        "fib50": 4191.48,
        "fib62": 4194.724,
        "entry_mid": 4193.102,
        "invalid": 4204.995,
        "risk_points": 11.893,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T07:55:00Z",
        "target1": 4181.209,
        "target2": 4169.315,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4190.335,
        "D_prior_index": 114,
        "H4_prior_index": 685,
        "H1_prior_index": 2622,
        "pre_local_high": 4204.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4198.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4171.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4185.05,
        "D_prior_index": 114,
        "H4_prior_index": 686,
        "H1_prior_index": 2625,
        "pre_local_low": 4171.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T07:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4170.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4222.52,
        "D_prior_index": 114,
        "H4_prior_index": 686,
        "H1_prior_index": 2626,
        "pre_local_low": 4170.29
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4226.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4226.96,
        "D_prior_index": 114,
        "H4_prior_index": 687,
        "H1_prior_index": 2627,
        "pre_local_low": 4173.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4227.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4228.07,
        "D_prior_index": 114,
        "H4_prior_index": 687,
        "H1_prior_index": 2627,
        "pre_local_low": 4195.11,
        "confirmation_time": "2026-06-12T12:35:00Z",
        "impulse_extreme": 4192.255,
        "fib50": 4210.163,
        "fib62": 4214.46,
        "entry_mid": 4212.311,
        "invalid": 4228.07,
        "risk_points": 15.759,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T13:35:00Z",
        "target1": 4196.553,
        "target2": 4180.794,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4218.81,
        "D_prior_index": 114,
        "H4_prior_index": 687,
        "H1_prior_index": 2628,
        "pre_local_high": 4228.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4197.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4210.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4215.43,
        "D_prior_index": 114,
        "H4_prior_index": 687,
        "H1_prior_index": 2629,
        "pre_local_low": 4197.735,
        "confirmation_time": "2026-06-12T12:35:00Z",
        "impulse_extreme": 4192.255,
        "fib50": 4203.843,
        "fib62": 4206.624,
        "entry_mid": 4205.233,
        "invalid": 4215.43,
        "risk_points": 10.197,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T13:20:00Z",
        "target1": 4195.036,
        "target2": 4184.839,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4202.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T12:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4215.43,
        "D_prior_index": 114,
        "H4_prior_index": 687,
        "H1_prior_index": 2630,
        "pre_local_low": 4197.735,
        "confirmation_time": "2026-06-12T12:35:00Z",
        "impulse_extreme": 4192.255,
        "fib50": 4203.843,
        "fib62": 4206.624,
        "entry_mid": 4205.233,
        "invalid": 4215.43,
        "risk_points": 10.197,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T13:20:00Z",
        "target1": 4195.036,
        "target2": 4184.839,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4188.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4186.595,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2631,
        "pre_local_high": 4215.43,
        "confirmation_time": "2026-06-12T15:20:00Z",
        "impulse_extreme": 4230.645,
        "fib50": 4208.62,
        "fib62": 4203.334,
        "entry_mid": 4205.977,
        "invalid": 4186.595,
        "risk_points": 19.382,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T15:45:00Z",
        "target1": 4225.359,
        "target2": 4244.741,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4201.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4210.325,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2631,
        "pre_local_low": 4186.595,
        "confirmation_time": "2026-06-12T13:55:00Z",
        "impulse_extreme": 4183.44,
        "fib50": 4196.882,
        "fib62": 4200.109,
        "entry_mid": 4198.496,
        "invalid": 4210.325,
        "risk_points": 11.829,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T14:00:00Z",
        "target1": 4186.666,
        "target2": 4174.837,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4198.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4182.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4199.59,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2632,
        "pre_local_low": 4182.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-12T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4181.15,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2632,
        "pre_local_high": 4210.325,
        "confirmation_time": "2026-06-12T15:10:00Z",
        "impulse_extreme": 4215.25,
        "fib50": 4198.2,
        "fib62": 4194.108,
        "entry_mid": 4196.154,
        "invalid": 4181.15,
        "risk_points": 15.004,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-12T14:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4177.25,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2632,
        "pre_local_high": 4210.325,
        "confirmation_time": "2026-06-12T15:10:00Z",
        "impulse_extreme": 4215.25,
        "fib50": 4196.25,
        "fib62": 4191.69,
        "entry_mid": 4193.97,
        "invalid": 4177.25,
        "risk_points": 16.72,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4206.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4233.085,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2634,
        "pre_local_low": 4177.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4211.395,
        "D_prior_index": 114,
        "H4_prior_index": 688,
        "H1_prior_index": 2634,
        "pre_local_high": 4235.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4214.045,
        "D_prior_index": 114,
        "H4_prior_index": 689,
        "H1_prior_index": 2635,
        "pre_local_high": 4233.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4214.03,
        "D_prior_index": 114,
        "H4_prior_index": 689,
        "H1_prior_index": 2635,
        "pre_local_high": 4233.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4225.13,
        "D_prior_index": 114,
        "H4_prior_index": 689,
        "H1_prior_index": 2635,
        "pre_local_low": 4208.325,
        "confirmation_time": "2026-06-12T19:30:00Z",
        "impulse_extreme": 4204.085,
        "fib50": 4214.608,
        "fib62": 4217.133,
        "entry_mid": 4215.87,
        "invalid": 4225.13,
        "risk_points": 9.26,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T20:20:00Z",
        "target1": 4206.61,
        "target2": 4197.351,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-12T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4218.25,
        "D_prior_index": 114,
        "H4_prior_index": 689,
        "H1_prior_index": 2636,
        "pre_local_high": 4226.525,
        "confirmation_time": "2026-06-12T18:10:00Z",
        "impulse_extreme": 4228.575,
        "fib50": 4223.413,
        "fib62": 4222.173,
        "entry_mid": 4222.793,
        "invalid": 4218.25,
        "risk_points": 4.543,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-12T18:45:00Z",
        "target1": 4227.336,
        "target2": 4231.879,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-12T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4235.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-12T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-12T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4224.47,
        "D_prior_index": 114,
        "H4_prior_index": 689,
        "H1_prior_index": 2636,
        "pre_local_high": 4235.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-14T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-14T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4280.395,
        "D_prior_index": 115,
        "H4_prior_index": 690,
        "H1_prior_index": 2639,
        "pre_local_high": 4309.19,
        "confirmation_time": "2026-06-15T01:30:00Z",
        "impulse_extreme": 4315.695,
        "fib50": 4298.045,
        "fib62": 4293.809,
        "entry_mid": 4295.927,
        "invalid": 4280.395,
        "risk_points": 15.532,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-14T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-14T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4291.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-14T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-14T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4281.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4308.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-15T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4285.32,
        "D_prior_index": 115,
        "H4_prior_index": 691,
        "H1_prior_index": 2642,
        "pre_local_high": 4308.42,
        "confirmation_time": "2026-06-15T01:30:00Z",
        "impulse_extreme": 4315.695,
        "fib50": 4300.507,
        "fib62": 4296.862,
        "entry_mid": 4298.685,
        "invalid": 4285.32,
        "risk_points": 13.365,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4300.375,
        "D_prior_index": 115,
        "H4_prior_index": 691,
        "H1_prior_index": 2642,
        "pre_local_low": 4281.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4334.15,
        "D_prior_index": 115,
        "H4_prior_index": 691,
        "H1_prior_index": 2643,
        "pre_local_low": 4285.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4327.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4335.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4322.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4327.86,
        "D_prior_index": 115,
        "H4_prior_index": 691,
        "H1_prior_index": 2645,
        "pre_local_low": 4321.26,
        "confirmation_time": "2026-06-15T05:35:00Z",
        "impulse_extreme": 4319.795,
        "fib50": 4323.827,
        "fib62": 4324.795,
        "entry_mid": 4324.311,
        "invalid": 4327.86,
        "risk_points": 3.549,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T07:55:00Z",
        "target1": 4320.763,
        "target2": 4317.214,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4323.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.85,
        "D_prior_index": 115,
        "H4_prior_index": 692,
        "H1_prior_index": 2646,
        "pre_local_low": 4320.76,
        "confirmation_time": "2026-06-15T05:40:00Z",
        "impulse_extreme": 4312.725,
        "fib50": 4321.788,
        "fib62": 4323.963,
        "entry_mid": 4322.875,
        "invalid": 4330.85,
        "risk_points": 7.975,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T07:50:00Z",
        "target1": 4314.9,
        "target2": 4306.925,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4333.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4303.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4303.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-15T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4301.005,
        "D_prior_index": 115,
        "H4_prior_index": 692,
        "H1_prior_index": 2647,
        "pre_local_high": 4333.05,
        "confirmation_time": "2026-06-15T08:30:00Z",
        "impulse_extreme": 4343.67,
        "fib50": 4322.337,
        "fib62": 4317.218,
        "entry_mid": 4319.778,
        "invalid": 4301.005,
        "risk_points": 18.773,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4312.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.91,
        "D_prior_index": 115,
        "H4_prior_index": 692,
        "H1_prior_index": 2649,
        "pre_local_low": 4301.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4343.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.4,
        "D_prior_index": 115,
        "H4_prior_index": 693,
        "H1_prior_index": 2651,
        "pre_local_high": 4343.285,
        "confirmation_time": "2026-06-15T11:30:00Z",
        "impulse_extreme": 4347.04,
        "fib50": 4341.22,
        "fib62": 4339.823,
        "entry_mid": 4340.522,
        "invalid": 4335.4,
        "risk_points": 5.122,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T11:40:00Z",
        "target1": 4345.643,
        "target2": 4350.765,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4340.415,
        "D_prior_index": 115,
        "H4_prior_index": 693,
        "H1_prior_index": 2651,
        "pre_local_low": 4334.085,
        "confirmation_time": "2026-06-15T11:45:00Z",
        "impulse_extreme": 4331.99,
        "fib50": 4336.202,
        "fib62": 4337.213,
        "entry_mid": 4336.708,
        "invalid": 4340.415,
        "risk_points": 3.707,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T11:50:00Z",
        "target1": 4333.001,
        "target2": 4329.294,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4341.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4336.245,
        "D_prior_index": 115,
        "H4_prior_index": 693,
        "H1_prior_index": 2652,
        "pre_local_high": 4343.275,
        "confirmation_time": "2026-06-15T11:30:00Z",
        "impulse_extreme": 4347.04,
        "fib50": 4341.642,
        "fib62": 4340.347,
        "entry_mid": 4340.995,
        "invalid": 4336.245,
        "risk_points": 4.75,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T11:35:00Z",
        "target1": 4345.745,
        "target2": 4350.494,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4347.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4338.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4341.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4354.015,
        "D_prior_index": 115,
        "H4_prior_index": 694,
        "H1_prior_index": 2655,
        "pre_local_high": 4369.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4369.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4353.91,
        "D_prior_index": 115,
        "H4_prior_index": 694,
        "H1_prior_index": 2655,
        "pre_local_high": 4369.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-15T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4365.23,
        "D_prior_index": 115,
        "H4_prior_index": 694,
        "H1_prior_index": 2655,
        "pre_local_low": 4341.32,
        "confirmation_time": "2026-06-15T16:20:00Z",
        "impulse_extreme": 4340.1,
        "fib50": 4352.665,
        "fib62": 4355.681,
        "entry_mid": 4354.173,
        "invalid": 4365.23,
        "risk_points": 11.057,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4349.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4359.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-15T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4360.855,
        "D_prior_index": 115,
        "H4_prior_index": 694,
        "H1_prior_index": 2656,
        "pre_local_low": 4349.655,
        "confirmation_time": "2026-06-15T16:15:00Z",
        "impulse_extreme": 4343.81,
        "fib50": 4352.333,
        "fib62": 4354.378,
        "entry_mid": 4353.355,
        "invalid": 4360.855,
        "risk_points": 7.5,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4334.65,
        "D_prior_index": 115,
        "H4_prior_index": 694,
        "H1_prior_index": 2657,
        "pre_local_high": 4360.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4318.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4328.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.795
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4327.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-15T19:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4316.73,
        "D_prior_index": 115,
        "H4_prior_index": 695,
        "H1_prior_index": 2660,
        "pre_local_high": 4328.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T20:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4322.095,
        "D_prior_index": 115,
        "H4_prior_index": 695,
        "H1_prior_index": 2661,
        "pre_local_low": 4316.73,
        "confirmation_time": "2026-06-15T20:10:00Z",
        "impulse_extreme": 4315.82,
        "fib50": 4318.958,
        "fib62": 4319.711,
        "entry_mid": 4319.334,
        "invalid": 4322.095,
        "risk_points": 2.761,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-15T23:35:00Z",
        "target1": 4316.573,
        "target2": 4313.812,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4306.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4315.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4314.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4316.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-15T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4311.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-15T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-15T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4313.225,
        "D_prior_index": 116,
        "H4_prior_index": 696,
        "H1_prior_index": 2663,
        "pre_local_high": 4319.33,
        "confirmation_time": "2026-06-16T01:00:00Z",
        "impulse_extreme": 4326.02,
        "fib50": 4319.623,
        "fib62": 4318.087,
        "entry_mid": 4318.855,
        "invalid": 4313.225,
        "risk_points": 5.63,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T01:05:00Z",
        "target1": 4324.485,
        "target2": 4330.114,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4326.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4312.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4318.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4315.515,
        "D_prior_index": 116,
        "H4_prior_index": 697,
        "H1_prior_index": 2667,
        "pre_local_high": 4321.235,
        "confirmation_time": "2026-06-16T03:25:00Z",
        "impulse_extreme": 4322.755,
        "fib50": 4319.135,
        "fib62": 4318.266,
        "entry_mid": 4318.701,
        "invalid": 4315.515,
        "risk_points": 3.186,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T05:35:00Z",
        "target1": 4321.886,
        "target2": 4325.072,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4333.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.785,
        "D_prior_index": 116,
        "H4_prior_index": 697,
        "H1_prior_index": 2668,
        "pre_local_high": 4333.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.315,
        "D_prior_index": 116,
        "H4_prior_index": 697,
        "H1_prior_index": 2668,
        "pre_local_high": 4333.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4331.0,
        "D_prior_index": 116,
        "H4_prior_index": 698,
        "H1_prior_index": 2669,
        "pre_local_low": 4320.59,
        "confirmation_time": "2026-06-16T05:35:00Z",
        "impulse_extreme": 4316.91,
        "fib50": 4323.955,
        "fib62": 4325.646,
        "entry_mid": 4324.8,
        "invalid": 4331.0,
        "risk_points": 6.2,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T06:55:00Z",
        "target1": 4318.601,
        "target2": 4312.401,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-16T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4313.53,
        "D_prior_index": 116,
        "H4_prior_index": 698,
        "H1_prior_index": 2670,
        "pre_local_high": 4331.0,
        "confirmation_time": "2026-06-16T07:50:00Z",
        "impulse_extreme": 4333.415,
        "fib50": 4323.472,
        "fib62": 4321.086,
        "entry_mid": 4322.279,
        "invalid": 4313.53,
        "risk_points": 8.749,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-16T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4314.215,
        "D_prior_index": 116,
        "H4_prior_index": 698,
        "H1_prior_index": 2670,
        "pre_local_high": 4331.0,
        "confirmation_time": "2026-06-16T07:50:00Z",
        "impulse_extreme": 4333.415,
        "fib50": 4323.815,
        "fib62": 4321.511,
        "entry_mid": 4322.663,
        "invalid": 4314.215,
        "risk_points": 8.448,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.745,
        "D_prior_index": 116,
        "H4_prior_index": 698,
        "H1_prior_index": 2671,
        "pre_local_low": 4313.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4345.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4348.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4346.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4348.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4346.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4342.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4349.655,
        "D_prior_index": 116,
        "H4_prior_index": 699,
        "H1_prior_index": 2675,
        "pre_local_low": 4338.41,
        "confirmation_time": "2026-06-16T11:45:00Z",
        "impulse_extreme": 4336.985,
        "fib50": 4343.32,
        "fib62": 4344.84,
        "entry_mid": 4344.08,
        "invalid": 4349.655,
        "risk_points": 5.575,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T12:05:00Z",
        "target1": 4338.505,
        "target2": 4332.931,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4338.55,
        "D_prior_index": 116,
        "H4_prior_index": 699,
        "H1_prior_index": 2675,
        "pre_local_high": 4349.655,
        "confirmation_time": "2026-06-16T12:50:00Z",
        "impulse_extreme": 4354.865,
        "fib50": 4346.708,
        "fib62": 4344.75,
        "entry_mid": 4345.729,
        "invalid": 4338.55,
        "risk_points": 7.179,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T13:05:00Z",
        "target1": 4352.907,
        "target2": 4360.086,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.165,
        "D_prior_index": 116,
        "H4_prior_index": 699,
        "H1_prior_index": 2675,
        "pre_local_high": 4349.655,
        "confirmation_time": "2026-06-16T12:50:00Z",
        "impulse_extreme": 4354.865,
        "fib50": 4345.015,
        "fib62": 4342.651,
        "entry_mid": 4343.833,
        "invalid": 4335.165,
        "risk_points": 8.668,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T13:05:00Z",
        "target1": 4352.501,
        "target2": 4361.169,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4337.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4331.53,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2678,
        "pre_local_high": 4354.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4313.32,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2678,
        "pre_local_high": 4354.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4328.71,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2679,
        "pre_local_low": 4313.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4328.865,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2679,
        "pre_local_low": 4313.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T15:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4322.22,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2679,
        "pre_local_high": 4338.89,
        "confirmation_time": "2026-06-16T16:05:00Z",
        "impulse_extreme": 4344.335,
        "fib50": 4333.278,
        "fib62": 4330.624,
        "entry_mid": 4331.951,
        "invalid": 4322.22,
        "risk_points": 9.731,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T17:15:00Z",
        "target1": 4341.681,
        "target2": 4351.412,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4340.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4340.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4346.46,
        "D_prior_index": 116,
        "H4_prior_index": 700,
        "H1_prior_index": 2680,
        "pre_local_low": 4321.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4338.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4342.94,
        "D_prior_index": 116,
        "H4_prior_index": 701,
        "H1_prior_index": 2682,
        "pre_local_low": 4325.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4336.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4342.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4336.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-16T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4330.97,
        "D_prior_index": 116,
        "H4_prior_index": 701,
        "H1_prior_index": 2684,
        "pre_local_high": 4342.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4335.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-16T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4333.1,
        "D_prior_index": 117,
        "H4_prior_index": 702,
        "H1_prior_index": 2685,
        "pre_local_low": 4329.295,
        "confirmation_time": "2026-06-16T22:20:00Z",
        "impulse_extreme": 4329.075,
        "fib50": 4331.087,
        "fib62": 4331.57,
        "entry_mid": 4331.329,
        "invalid": 4333.1,
        "risk_points": 1.771,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-16T22:25:00Z",
        "target1": 4329.558,
        "target2": 4327.787,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-16T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-16T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4333.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4328.615,
        "D_prior_index": 117,
        "H4_prior_index": 702,
        "H1_prior_index": 2687,
        "pre_local_high": 4338.57,
        "confirmation_time": "2026-06-17T00:15:00Z",
        "impulse_extreme": 4341.785,
        "fib50": 4335.2,
        "fib62": 4333.62,
        "entry_mid": 4334.41,
        "invalid": 4328.615,
        "risk_points": 5.795,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-17T00:35:00Z",
        "target1": 4340.205,
        "target2": 4345.999,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4341.785,
        "D_prior_index": 117,
        "H4_prior_index": 702,
        "H1_prior_index": 2687,
        "pre_local_low": 4328.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4332.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4337.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4336.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4344.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4339.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-17T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4344.545,
        "D_prior_index": 117,
        "H4_prior_index": 703,
        "H1_prior_index": 2689,
        "pre_local_low": 4332.47,
        "confirmation_time": "2026-06-17T02:50:00Z",
        "impulse_extreme": 4329.74,
        "fib50": 4337.142,
        "fib62": 4338.919,
        "entry_mid": 4338.031,
        "invalid": 4344.545,
        "risk_points": 6.514,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4329.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4328.79,
        "D_prior_index": 117,
        "H4_prior_index": 703,
        "H1_prior_index": 2690,
        "pre_local_high": 4344.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4333.855,
        "D_prior_index": 117,
        "H4_prior_index": 703,
        "H1_prior_index": 2690,
        "pre_local_low": 4328.79,
        "confirmation_time": "2026-06-17T04:25:00Z",
        "impulse_extreme": 4324.025,
        "fib50": 4328.94,
        "fib62": 4330.12,
        "entry_mid": 4329.53,
        "invalid": 4333.855,
        "risk_points": 4.325,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-17T05:30:00Z",
        "target1": 4325.205,
        "target2": 4320.879,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4328.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T04:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4334.18,
        "D_prior_index": 117,
        "H4_prior_index": 703,
        "H1_prior_index": 2691,
        "pre_local_low": 4328.66,
        "confirmation_time": "2026-06-17T04:25:00Z",
        "impulse_extreme": 4324.025,
        "fib50": 4329.102,
        "fib62": 4330.321,
        "entry_mid": 4329.712,
        "invalid": 4334.18,
        "risk_points": 4.468,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-17T05:30:00Z",
        "target1": 4325.244,
        "target2": 4320.775,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T05:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4321.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4327.965,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2692,
        "pre_local_low": 4317.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T05:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4321.125,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2692,
        "pre_local_high": 4334.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4334.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T06:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4320.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.825,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2694,
        "pre_local_low": 4320.575,
        "confirmation_time": "2026-06-17T08:35:00Z",
        "impulse_extreme": 4320.095,
        "fib50": 4326.46,
        "fib62": 4327.988,
        "entry_mid": 4327.224,
        "invalid": 4332.825,
        "risk_points": 5.601,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-17T09:15:00Z",
        "target1": 4321.623,
        "target2": 4316.021,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4326.635,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2694,
        "pre_local_high": 4334.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4319.815,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2695,
        "pre_local_high": 4332.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4318.945,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2695,
        "pre_local_high": 4332.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T08:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4317.19,
        "D_prior_index": 117,
        "H4_prior_index": 704,
        "H1_prior_index": 2695,
        "pre_local_high": 4332.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.81,
        "D_prior_index": 117,
        "H4_prior_index": 705,
        "H1_prior_index": 2696,
        "pre_local_low": 4317.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4326.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4331.255,
        "D_prior_index": 117,
        "H4_prior_index": 705,
        "H1_prior_index": 2697,
        "pre_local_low": 4318.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4319.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4327.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4345.27,
        "D_prior_index": 117,
        "H4_prior_index": 706,
        "H1_prior_index": 2700,
        "pre_local_low": 4319.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4335.67,
        "D_prior_index": 117,
        "H4_prior_index": 706,
        "H1_prior_index": 2701,
        "pre_local_high": 4345.27,
        "confirmation_time": "2026-06-17T14:20:00Z",
        "impulse_extreme": 4362.355,
        "fib50": 4349.012,
        "fib62": 4345.81,
        "entry_mid": 4347.411,
        "invalid": 4335.67,
        "risk_points": 11.741,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-17T14:40:00Z",
        "target1": 4359.153,
        "target2": 4370.894,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4346.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T14:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4364.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-17T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4361.155,
        "D_prior_index": 117,
        "H4_prior_index": 706,
        "H1_prior_index": 2702,
        "pre_local_low": 4330.95,
        "confirmation_time": "2026-06-17T18:00:00Z",
        "impulse_extreme": 4316.69,
        "fib50": 4338.922,
        "fib62": 4344.258,
        "entry_mid": 4341.59,
        "invalid": 4361.155,
        "risk_points": 19.565,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-17T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4365.76,
        "D_prior_index": 117,
        "H4_prior_index": 706,
        "H1_prior_index": 2703,
        "pre_local_low": 4330.95,
        "confirmation_time": "2026-06-17T18:00:00Z",
        "impulse_extreme": 4316.69,
        "fib50": 4341.225,
        "fib62": 4347.113,
        "entry_mid": 4344.169,
        "invalid": 4365.76,
        "risk_points": 21.591,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4366.555
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4355.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4361.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4382.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T18:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4270.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-17T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4332.585,
        "D_prior_index": 117,
        "H4_prior_index": 707,
        "H1_prior_index": 2705,
        "pre_local_low": 4270.2,
        "confirmation_time": "2026-06-17T19:05:00Z",
        "impulse_extreme": 4263.88,
        "fib50": 4298.233,
        "fib62": 4306.477,
        "entry_mid": 4302.355,
        "invalid": 4332.585,
        "risk_points": 30.23,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-18T00:05:00Z",
        "target1": 4272.125,
        "target2": 4241.894,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4219.165,
        "D_prior_index": 117,
        "H4_prior_index": 707,
        "H1_prior_index": 2706,
        "pre_local_high": 4382.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T20:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4269.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4271.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-17T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4260.495,
        "D_prior_index": 118,
        "H4_prior_index": 708,
        "H1_prior_index": 2708,
        "pre_local_high": 4271.645,
        "confirmation_time": "2026-06-17T23:05:00Z",
        "impulse_extreme": 4274.34,
        "fib50": 4267.417,
        "fib62": 4265.756,
        "entry_mid": 4266.587,
        "invalid": 4260.495,
        "risk_points": 6.092,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4271.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-17T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4283.89,
        "D_prior_index": 118,
        "H4_prior_index": 708,
        "H1_prior_index": 2709,
        "pre_local_low": 4256.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-17T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-17T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4268.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4315.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T01:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4306.83,
        "D_prior_index": 118,
        "H4_prior_index": 709,
        "H1_prior_index": 2711,
        "pre_local_high": 4328.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4325.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4326.21,
        "D_prior_index": 118,
        "H4_prior_index": 709,
        "H1_prior_index": 2711,
        "pre_local_low": 4291.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4316.325,
        "D_prior_index": 118,
        "H4_prior_index": 709,
        "H1_prior_index": 2712,
        "pre_local_high": 4328.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4309.225,
        "D_prior_index": 118,
        "H4_prior_index": 709,
        "H1_prior_index": 2713,
        "pre_local_high": 4329.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4317.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4314.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4324.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T04:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4309.82,
        "D_prior_index": 118,
        "H4_prior_index": 709,
        "H1_prior_index": 2714,
        "pre_local_high": 4324.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4318.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-18T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4324.91,
        "D_prior_index": 118,
        "H4_prior_index": 710,
        "H1_prior_index": 2715,
        "pre_local_low": 4309.82,
        "confirmation_time": "2026-06-18T05:45:00Z",
        "impulse_extreme": 4302.48,
        "fib50": 4313.695,
        "fib62": 4316.387,
        "entry_mid": 4315.041,
        "invalid": 4324.91,
        "risk_points": 9.869,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-18T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4305.57,
        "D_prior_index": 118,
        "H4_prior_index": 710,
        "H1_prior_index": 2716,
        "pre_local_low": 4296.23,
        "confirmation_time": "2026-06-18T07:35:00Z",
        "impulse_extreme": 4293.86,
        "fib50": 4299.715,
        "fib62": 4301.12,
        "entry_mid": 4300.418,
        "invalid": 4305.57,
        "risk_points": 5.152,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4300.29,
        "D_prior_index": 118,
        "H4_prior_index": 710,
        "H1_prior_index": 2717,
        "pre_local_high": 4324.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-18T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4309.155,
        "D_prior_index": 118,
        "H4_prior_index": 710,
        "H1_prior_index": 2717,
        "pre_local_low": 4296.23,
        "confirmation_time": "2026-06-18T07:35:00Z",
        "impulse_extreme": 4293.86,
        "fib50": 4301.507,
        "fib62": 4303.343,
        "entry_mid": 4302.425,
        "invalid": 4309.155,
        "risk_points": 6.73,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-18T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4309.375,
        "D_prior_index": 118,
        "H4_prior_index": 710,
        "H1_prior_index": 2717,
        "pre_local_low": 4296.23,
        "confirmation_time": "2026-06-18T07:35:00Z",
        "impulse_extreme": 4293.86,
        "fib50": 4301.618,
        "fib62": 4303.479,
        "entry_mid": 4302.548,
        "invalid": 4309.375,
        "risk_points": 6.827,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4284.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4259.875,
        "D_prior_index": 118,
        "H4_prior_index": 711,
        "H1_prior_index": 2719,
        "pre_local_high": 4309.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4273.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4263.465,
        "D_prior_index": 118,
        "H4_prior_index": 711,
        "H1_prior_index": 2719,
        "pre_local_high": 4296.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4273.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4262.01,
        "D_prior_index": 118,
        "H4_prior_index": 711,
        "H1_prior_index": 2720,
        "pre_local_high": 4290.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4272.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T10:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4263.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4250.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4240.07
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4269.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4241.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4237.265,
        "D_prior_index": 118,
        "H4_prior_index": 712,
        "H1_prior_index": 2724,
        "pre_local_high": 4276.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4240.475,
        "D_prior_index": 118,
        "H4_prior_index": 712,
        "H1_prior_index": 2724,
        "pre_local_high": 4276.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4254.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4254.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4223.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-18T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4233.465,
        "D_prior_index": 118,
        "H4_prior_index": 712,
        "H1_prior_index": 2726,
        "pre_local_low": 4223.2,
        "confirmation_time": "2026-06-18T16:20:00Z",
        "impulse_extreme": 4221.97,
        "fib50": 4227.718,
        "fib62": 4229.097,
        "entry_mid": 4228.407,
        "invalid": 4233.465,
        "risk_points": 5.058,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-18T16:30:00Z",
        "target1": 4223.349,
        "target2": 4218.292,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4214.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-18T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4229.475,
        "D_prior_index": 118,
        "H4_prior_index": 712,
        "H1_prior_index": 2726,
        "pre_local_low": 4221.815,
        "confirmation_time": "2026-06-18T16:45:00Z",
        "impulse_extreme": 4217.59,
        "fib50": 4223.533,
        "fib62": 4224.959,
        "entry_mid": 4224.246,
        "invalid": 4229.475,
        "risk_points": 5.229,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-18T17:00:00Z",
        "target1": 4219.016,
        "target2": 4213.787,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4214.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4231.625
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4222.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4233.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4227.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4233.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-18T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4201.92,
        "D_prior_index": 118,
        "H4_prior_index": 713,
        "H1_prior_index": 2729,
        "pre_local_high": 4233.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T19:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4201.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-18T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4204.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-18T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-18T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4210.085,
        "D_prior_index": 119,
        "H4_prior_index": 714,
        "H1_prior_index": 2731,
        "pre_local_low": 4203.08,
        "confirmation_time": "2026-06-18T23:00:00Z",
        "impulse_extreme": 4199.025,
        "fib50": 4204.555,
        "fib62": 4205.882,
        "entry_mid": 4205.219,
        "invalid": 4210.085,
        "risk_points": 4.866,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4198.245,
        "D_prior_index": 119,
        "H4_prior_index": 714,
        "H1_prior_index": 2733,
        "pre_local_low": 4186.94,
        "confirmation_time": "2026-06-19T00:05:00Z",
        "impulse_extreme": 4184.59,
        "fib50": 4191.417,
        "fib62": 4193.056,
        "entry_mid": 4192.237,
        "invalid": 4198.245,
        "risk_points": 6.008,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T00:50:00Z",
        "target1": 4186.229,
        "target2": 4180.22,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4184.075,
        "D_prior_index": 119,
        "H4_prior_index": 714,
        "H1_prior_index": 2733,
        "pre_local_high": 4210.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4191.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4192.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-19T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4194.665,
        "D_prior_index": 119,
        "H4_prior_index": 715,
        "H1_prior_index": 2734,
        "pre_local_low": 4184.075,
        "confirmation_time": "2026-06-19T02:05:00Z",
        "impulse_extreme": 4179.29,
        "fib50": 4186.977,
        "fib62": 4188.823,
        "entry_mid": 4187.9,
        "invalid": 4194.665,
        "risk_points": 6.765,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4184.125,
        "D_prior_index": 119,
        "H4_prior_index": 715,
        "H1_prior_index": 2734,
        "pre_local_high": 4198.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4184.16,
        "D_prior_index": 119,
        "H4_prior_index": 715,
        "H1_prior_index": 2734,
        "pre_local_high": 4194.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4175.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4183.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4165.24,
        "D_prior_index": 119,
        "H4_prior_index": 715,
        "H1_prior_index": 2736,
        "pre_local_high": 4189.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4141.615,
        "D_prior_index": 119,
        "H4_prior_index": 715,
        "H1_prior_index": 2737,
        "pre_local_high": 4183.755
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4121.955
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4160.335,
        "D_prior_index": 119,
        "H4_prior_index": 716,
        "H1_prior_index": 2740,
        "pre_local_low": 4130.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4151.285,
        "D_prior_index": 119,
        "H4_prior_index": 716,
        "H1_prior_index": 2740,
        "pre_local_high": 4160.335,
        "confirmation_time": "2026-06-19T08:05:00Z",
        "impulse_extreme": 4164.75,
        "fib50": 4158.017,
        "fib62": 4156.402,
        "entry_mid": 4157.21,
        "invalid": 4151.285,
        "risk_points": 5.925,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T10:00:00Z",
        "target1": 4163.134,
        "target2": 4169.059,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4178.525,
        "D_prior_index": 119,
        "H4_prior_index": 716,
        "H1_prior_index": 2741,
        "pre_local_low": 4142.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4164.635,
        "D_prior_index": 119,
        "H4_prior_index": 716,
        "H1_prior_index": 2741,
        "pre_local_high": 4178.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-19T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4171.08,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2742,
        "pre_local_low": 4151.285,
        "confirmation_time": "2026-06-19T10:35:00Z",
        "impulse_extreme": 4150.275,
        "fib50": 4160.677,
        "fib62": 4163.174,
        "entry_mid": 4161.926,
        "invalid": 4171.08,
        "risk_points": 9.154,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4161.18
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4167.45,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2742,
        "pre_local_low": 4157.7,
        "confirmation_time": "2026-06-19T10:05:00Z",
        "impulse_extreme": 4152.94,
        "fib50": 4160.195,
        "fib62": 4161.936,
        "entry_mid": 4161.066,
        "invalid": 4167.45,
        "risk_points": 6.384,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T12:10:00Z",
        "target1": 4154.681,
        "target2": 4148.297,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4152.79,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2743,
        "pre_local_high": 4175.505,
        "confirmation_time": "2026-06-19T12:55:00Z",
        "impulse_extreme": 4180.12,
        "fib50": 4166.455,
        "fib62": 4163.175,
        "entry_mid": 4164.815,
        "invalid": 4152.79,
        "risk_points": 12.025,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T13:00:00Z",
        "target1": 4176.84,
        "target2": 4188.866,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4142.035,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2744,
        "pre_local_high": 4165.475,
        "confirmation_time": "2026-06-19T12:50:00Z",
        "impulse_extreme": 4174.78,
        "fib50": 4158.407,
        "fib62": 4154.478,
        "entry_mid": 4156.443,
        "invalid": 4142.035,
        "risk_points": 14.408,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T13:40:00Z",
        "target1": 4170.851,
        "target2": 4185.258,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4148.055,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2745,
        "pre_local_high": 4160.39,
        "confirmation_time": "2026-06-19T12:50:00Z",
        "impulse_extreme": 4174.78,
        "fib50": 4161.417,
        "fib62": 4158.211,
        "entry_mid": 4159.814,
        "invalid": 4148.055,
        "risk_points": 11.759,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T13:35:00Z",
        "target1": 4171.573,
        "target2": 4183.332,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-19T12:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4147.445,
        "D_prior_index": 119,
        "H4_prior_index": 717,
        "H1_prior_index": 2745,
        "pre_local_high": 4160.39,
        "confirmation_time": "2026-06-19T12:50:00Z",
        "impulse_extreme": 4174.78,
        "fib50": 4161.112,
        "fib62": 4157.832,
        "entry_mid": 4159.472,
        "invalid": 4147.445,
        "risk_points": 12.027,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-19T13:35:00Z",
        "target1": 4171.5,
        "target2": 4183.527,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4183.125,
        "D_prior_index": 119,
        "H4_prior_index": 718,
        "H1_prior_index": 2746,
        "pre_local_low": 4142.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4143.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4143.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4150.745,
        "D_prior_index": 119,
        "H4_prior_index": 718,
        "H1_prior_index": 2747,
        "pre_local_low": 4143.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4142.545,
        "D_prior_index": 119,
        "H4_prior_index": 718,
        "H1_prior_index": 2747,
        "pre_local_high": 4183.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4151.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-19T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4153.64,
        "D_prior_index": 119,
        "H4_prior_index": 718,
        "H1_prior_index": 2748,
        "pre_local_low": 4142.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4154.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-19T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4153.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-19T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-19T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4144.32,
        "D_prior_index": 119,
        "H4_prior_index": 718,
        "H1_prior_index": 2749,
        "pre_local_high": 4154.155,
        "confirmation_time": "2026-06-19T16:45:00Z",
        "impulse_extreme": 4157.37,
        "fib50": 4150.845,
        "fib62": 4149.279,
        "entry_mid": 4150.062,
        "invalid": 4144.32,
        "risk_points": 5.742,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-21T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-21T22:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4148.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-21T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-21T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4160.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-21T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-21T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4147.905,
        "D_prior_index": 120,
        "H4_prior_index": 719,
        "H1_prior_index": 2750,
        "pre_local_high": 4160.11,
        "confirmation_time": "2026-06-21T23:05:00Z",
        "impulse_extreme": 4163.335,
        "fib50": 4155.62,
        "fib62": 4153.768,
        "entry_mid": 4154.694,
        "invalid": 4147.905,
        "risk_points": 6.789,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-21T23:15:00Z",
        "target1": 4161.483,
        "target2": 4168.273,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-21T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-21T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4155.405,
        "D_prior_index": 120,
        "H4_prior_index": 719,
        "H1_prior_index": 2750,
        "pre_local_low": 4144.32,
        "confirmation_time": "2026-06-21T23:45:00Z",
        "impulse_extreme": 4136.695,
        "fib50": 4146.05,
        "fib62": 4148.295,
        "entry_mid": 4147.173,
        "invalid": 4155.405,
        "risk_points": 8.232,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T00:00:00Z",
        "target1": 4138.94,
        "target2": 4130.708,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-21T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-21T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4154.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4183.54,
        "D_prior_index": 120,
        "H4_prior_index": 720,
        "H1_prior_index": 2754,
        "pre_local_high": 4221.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4173.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-22T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4170.695,
        "D_prior_index": 120,
        "H4_prior_index": 720,
        "H1_prior_index": 2756,
        "pre_local_high": 4200.29,
        "confirmation_time": "2026-06-22T06:20:00Z",
        "impulse_extreme": 4200.545,
        "fib50": 4185.62,
        "fib62": 4182.038,
        "entry_mid": 4183.829,
        "invalid": 4170.695,
        "risk_points": 13.134,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4179.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4198.66,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2757,
        "pre_local_low": 4170.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4198.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4200.72,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2758,
        "pre_local_low": 4174.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T06:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4207.355,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2758,
        "pre_local_low": 4179.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4197.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4201.945,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2759,
        "pre_local_low": 4190.465,
        "confirmation_time": "2026-06-22T08:10:00Z",
        "impulse_extreme": 4189.155,
        "fib50": 4195.55,
        "fib62": 4197.085,
        "entry_mid": 4196.317,
        "invalid": 4201.945,
        "risk_points": 5.628,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T08:50:00Z",
        "target1": 4190.69,
        "target2": 4185.062,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4188.645,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2760,
        "pre_local_high": 4207.355,
        "confirmation_time": "2026-06-22T09:05:00Z",
        "impulse_extreme": 4209.74,
        "fib50": 4199.193,
        "fib62": 4196.661,
        "entry_mid": 4197.927,
        "invalid": 4188.645,
        "risk_points": 9.282,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T12:50:00Z",
        "target1": 4207.209,
        "target2": 4216.49,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4195.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4189.05,
        "D_prior_index": 120,
        "H4_prior_index": 721,
        "H1_prior_index": 2760,
        "pre_local_high": 4207.355,
        "confirmation_time": "2026-06-22T09:05:00Z",
        "impulse_extreme": 4209.74,
        "fib50": 4199.395,
        "fib62": 4196.912,
        "entry_mid": 4198.154,
        "invalid": 4189.05,
        "risk_points": 9.104,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T12:50:00Z",
        "target1": 4207.257,
        "target2": 4216.361,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4201.595,
        "D_prior_index": 120,
        "H4_prior_index": 722,
        "H1_prior_index": 2761,
        "pre_local_high": 4210.17,
        "confirmation_time": "2026-06-22T10:05:00Z",
        "impulse_extreme": 4211.79,
        "fib50": 4206.693,
        "fib62": 4205.469,
        "entry_mid": 4206.081,
        "invalid": 4201.595,
        "risk_points": 4.486,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T10:45:00Z",
        "target1": 4210.567,
        "target2": 4215.052,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4210.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4214.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4215.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4202.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4201.61,
        "D_prior_index": 120,
        "H4_prior_index": 722,
        "H1_prior_index": 2763,
        "pre_local_high": 4215.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4211.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4212.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4188.865,
        "D_prior_index": 120,
        "H4_prior_index": 723,
        "H1_prior_index": 2765,
        "pre_local_high": 4212.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4183.0,
        "D_prior_index": 120,
        "H4_prior_index": 723,
        "H1_prior_index": 2765,
        "pre_local_high": 4212.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4210.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4186.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4169.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4186.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T16:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4180.87,
        "D_prior_index": 120,
        "H4_prior_index": 723,
        "H1_prior_index": 2768,
        "pre_local_high": 4199.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4191.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4190.005,
        "D_prior_index": 120,
        "H4_prior_index": 724,
        "H1_prior_index": 2770,
        "pre_local_low": 4177.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4193.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T19-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T19:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4184.23,
        "D_prior_index": 120,
        "H4_prior_index": 724,
        "H1_prior_index": 2771,
        "pre_local_high": 4193.47,
        "confirmation_time": "2026-06-22T20:35:00Z",
        "impulse_extreme": 4193.81,
        "fib50": 4189.02,
        "fib62": 4187.87,
        "entry_mid": 4188.445,
        "invalid": 4184.23,
        "risk_points": 4.215,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-22T22:45:00Z",
        "target1": 4192.66,
        "target2": 4196.876,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4193.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-22T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4188.72,
        "D_prior_index": 120,
        "H4_prior_index": 724,
        "H1_prior_index": 2772,
        "pre_local_high": 4193.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4193.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-22T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4191.275,
        "D_prior_index": 121,
        "H4_prior_index": 725,
        "H1_prior_index": 2773,
        "pre_local_high": 4193.835,
        "confirmation_time": "2026-06-22T23:35:00Z",
        "impulse_extreme": 4195.065,
        "fib50": 4193.17,
        "fib62": 4192.715,
        "entry_mid": 4192.943,
        "invalid": 4191.275,
        "risk_points": 1.668,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-22T22:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4194.86,
        "D_prior_index": 121,
        "H4_prior_index": 725,
        "H1_prior_index": 2773,
        "pre_local_low": 4184.845,
        "confirmation_time": "2026-06-23T00:05:00Z",
        "impulse_extreme": 4183.765,
        "fib50": 4189.312,
        "fib62": 4190.644,
        "entry_mid": 4189.978,
        "invalid": 4194.86,
        "risk_points": 4.882,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T00:40:00Z",
        "target1": 4185.096,
        "target2": 4180.215,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-22T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-22T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4188.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4198.605,
        "D_prior_index": 121,
        "H4_prior_index": 726,
        "H1_prior_index": 2776,
        "pre_local_low": 4178.485,
        "confirmation_time": "2026-06-23T01:15:00Z",
        "impulse_extreme": 4172.43,
        "fib50": 4185.517,
        "fib62": 4188.658,
        "entry_mid": 4187.088,
        "invalid": 4198.605,
        "risk_points": 11.517,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4150.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4148.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.175,
        "D_prior_index": 121,
        "H4_prior_index": 726,
        "H1_prior_index": 2777,
        "pre_local_low": 4150.025,
        "confirmation_time": "2026-06-23T02:55:00Z",
        "impulse_extreme": 4146.545,
        "fib50": 4154.86,
        "fib62": 4156.856,
        "entry_mid": 4155.858,
        "invalid": 4163.175,
        "risk_points": 7.317,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4163.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4152.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4130.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4147.065,
        "D_prior_index": 121,
        "H4_prior_index": 726,
        "H1_prior_index": 2779,
        "pre_local_low": 4130.965,
        "confirmation_time": "2026-06-23T04:55:00Z",
        "impulse_extreme": 4114.825,
        "fib50": 4130.945,
        "fib62": 4134.814,
        "entry_mid": 4132.879,
        "invalid": 4147.065,
        "risk_points": 14.186,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T05:00:00Z",
        "target1": 4118.694,
        "target2": 4104.508,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4135.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4117.195,
        "D_prior_index": 121,
        "H4_prior_index": 727,
        "H1_prior_index": 2780,
        "pre_local_high": 4147.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4116.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4111.115
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4110.335,
        "D_prior_index": 121,
        "H4_prior_index": 727,
        "H1_prior_index": 2781,
        "pre_local_high": 4137.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4110.08,
        "D_prior_index": 121,
        "H4_prior_index": 727,
        "H1_prior_index": 2782,
        "pre_local_high": 4133.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4117.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T11:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4117.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4132.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4118.42,
        "D_prior_index": 121,
        "H4_prior_index": 728,
        "H1_prior_index": 2786,
        "pre_local_high": 4133.19,
        "confirmation_time": "2026-06-23T13:50:00Z",
        "impulse_extreme": 4140.39,
        "fib50": 4129.405,
        "fib62": 4126.769,
        "entry_mid": 4128.087,
        "invalid": 4118.42,
        "risk_points": 9.667,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T14:25:00Z",
        "target1": 4137.754,
        "target2": 4147.42,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4127.48,
        "D_prior_index": 121,
        "H4_prior_index": 728,
        "H1_prior_index": 2787,
        "pre_local_low": 4117.44,
        "confirmation_time": "2026-06-23T12:10:00Z",
        "impulse_extreme": 4112.92,
        "fib50": 4120.2,
        "fib62": 4121.947,
        "entry_mid": 4121.074,
        "invalid": 4127.48,
        "risk_points": 6.406,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T12:20:00Z",
        "target1": 4114.667,
        "target2": 4108.261,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4111.72,
        "D_prior_index": 121,
        "H4_prior_index": 728,
        "H1_prior_index": 2787,
        "pre_local_high": 4132.11,
        "confirmation_time": "2026-06-23T13:50:00Z",
        "impulse_extreme": 4140.39,
        "fib50": 4126.055,
        "fib62": 4122.615,
        "entry_mid": 4124.335,
        "invalid": 4111.72,
        "risk_points": 12.615,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T14:30:00Z",
        "target1": 4136.95,
        "target2": 4149.564,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4122.82,
        "D_prior_index": 121,
        "H4_prior_index": 728,
        "H1_prior_index": 2787,
        "pre_local_low": 4111.72,
        "confirmation_time": "2026-06-23T13:15:00Z",
        "impulse_extreme": 4106.555,
        "fib50": 4114.688,
        "fib62": 4116.639,
        "entry_mid": 4115.663,
        "invalid": 4122.82,
        "risk_points": 7.157,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T13:20:00Z",
        "target1": 4108.507,
        "target2": 4101.35,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4108.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4105.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4119.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4145.215,
        "D_prior_index": 121,
        "H4_prior_index": 729,
        "H1_prior_index": 2789,
        "pre_local_low": 4105.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4123.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4135.66
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4140.045,
        "D_prior_index": 121,
        "H4_prior_index": 729,
        "H1_prior_index": 2791,
        "pre_local_low": 4122.775,
        "confirmation_time": "2026-06-23T18:25:00Z",
        "impulse_extreme": 4120.79,
        "fib50": 4130.417,
        "fib62": 4132.728,
        "entry_mid": 4131.573,
        "invalid": 4140.045,
        "risk_points": 8.472,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.14,
        "D_prior_index": 121,
        "H4_prior_index": 729,
        "H1_prior_index": 2791,
        "pre_local_high": 4141.82,
        "confirmation_time": "2026-06-23T16:35:00Z",
        "impulse_extreme": 4143.02,
        "fib50": 4138.08,
        "fib62": 4136.894,
        "entry_mid": 4137.487,
        "invalid": 4133.14,
        "risk_points": 4.347,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T16:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4143.94,
        "D_prior_index": 121,
        "H4_prior_index": 729,
        "H1_prior_index": 2791,
        "pre_local_low": 4123.485,
        "confirmation_time": "2026-06-23T18:25:00Z",
        "impulse_extreme": 4120.79,
        "fib50": 4132.365,
        "fib62": 4135.143,
        "entry_mid": 4133.754,
        "invalid": 4143.94,
        "risk_points": 10.186,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4130.175,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2792,
        "pre_local_high": 4143.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T17:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4130.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4127.79,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2792,
        "pre_local_high": 4143.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.25,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2792,
        "pre_local_low": 4127.79,
        "confirmation_time": "2026-06-23T18:00:00Z",
        "impulse_extreme": 4126.665,
        "fib50": 4129.958,
        "fib62": 4130.748,
        "entry_mid": 4130.353,
        "invalid": 4133.25,
        "risk_points": 2.897,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4112.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-23T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4124.475,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2794,
        "pre_local_low": 4112.88,
        "confirmation_time": "2026-06-23T19:55:00Z",
        "impulse_extreme": 4111.675,
        "fib50": 4118.075,
        "fib62": 4119.611,
        "entry_mid": 4118.843,
        "invalid": 4124.475,
        "risk_points": 5.632,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-23T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4107.53,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2795,
        "pre_local_high": 4126.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4111.95,
        "D_prior_index": 121,
        "H4_prior_index": 730,
        "H1_prior_index": 2795,
        "pre_local_low": 4107.53,
        "confirmation_time": "2026-06-23T22:20:00Z",
        "impulse_extreme": 4105.3,
        "fib50": 4108.625,
        "fib62": 4109.423,
        "entry_mid": 4109.024,
        "invalid": 4111.95,
        "risk_points": 2.926,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T22:25:00Z",
        "target1": 4106.098,
        "target2": 4103.172,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4108.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-23T22:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4115.235,
        "D_prior_index": 122,
        "H4_prior_index": 731,
        "H1_prior_index": 2796,
        "pre_local_low": 4107.53,
        "confirmation_time": "2026-06-23T22:20:00Z",
        "impulse_extreme": 4105.3,
        "fib50": 4110.267,
        "fib62": 4111.46,
        "entry_mid": 4110.864,
        "invalid": 4115.235,
        "risk_points": 4.371,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-23T22:25:00Z",
        "target1": 4106.492,
        "target2": 4102.121,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-23T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-23T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4109.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T00:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4093.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4102.51,
        "D_prior_index": 122,
        "H4_prior_index": 732,
        "H1_prior_index": 2799,
        "pre_local_low": 4068.52,
        "confirmation_time": "2026-06-24T02:35:00Z",
        "impulse_extreme": 4060.005,
        "fib50": 4081.258,
        "fib62": 4086.358,
        "entry_mid": 4083.808,
        "invalid": 4102.51,
        "risk_points": 18.702,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T05:30:00Z",
        "target1": 4065.106,
        "target2": 4046.403,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4096.335,
        "D_prior_index": 122,
        "H4_prior_index": 732,
        "H1_prior_index": 2800,
        "pre_local_low": 4068.52,
        "confirmation_time": "2026-06-24T02:35:00Z",
        "impulse_extreme": 4060.005,
        "fib50": 4078.17,
        "fib62": 4082.53,
        "entry_mid": 4080.35,
        "invalid": 4096.335,
        "risk_points": 15.985,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T05:30:00Z",
        "target1": 4064.365,
        "target2": 4048.379,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T03-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T03:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4052.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4050.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4070.705,
        "D_prior_index": 122,
        "H4_prior_index": 732,
        "H1_prior_index": 2801,
        "pre_local_low": 4050.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4055.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.34,
        "D_prior_index": 122,
        "H4_prior_index": 732,
        "H1_prior_index": 2802,
        "pre_local_low": 4050.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4061.985,
        "D_prior_index": 122,
        "H4_prior_index": 732,
        "H1_prior_index": 2802,
        "pre_local_high": 4070.705,
        "confirmation_time": "2026-06-24T05:20:00Z",
        "impulse_extreme": 4072.68,
        "fib50": 4067.332,
        "fib62": 4066.049,
        "entry_mid": 4066.691,
        "invalid": 4061.985,
        "risk_points": 4.706,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T09:35:00Z",
        "target1": 4071.397,
        "target2": 4076.102,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4060.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T06:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4097.73,
        "D_prior_index": 122,
        "H4_prior_index": 733,
        "H1_prior_index": 2804,
        "pre_local_low": 4060.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4084.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4094.79,
        "D_prior_index": 122,
        "H4_prior_index": 733,
        "H1_prior_index": 2804,
        "pre_local_low": 4060.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4086.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4069.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T09:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4065.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4055.2,
        "D_prior_index": 122,
        "H4_prior_index": 734,
        "H1_prior_index": 2808,
        "pre_local_high": 4085.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4051.66,
        "D_prior_index": 122,
        "H4_prior_index": 734,
        "H1_prior_index": 2809,
        "pre_local_low": 4037.585,
        "confirmation_time": "2026-06-24T12:20:00Z",
        "impulse_extreme": 4032.57,
        "fib50": 4042.115,
        "fib62": 4044.406,
        "entry_mid": 4043.26,
        "invalid": 4051.66,
        "risk_points": 8.4,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T13:55:00Z",
        "target1": 4034.861,
        "target2": 4026.461,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4039.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4056.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3964.645,
        "D_prior_index": 122,
        "H4_prior_index": 735,
        "H1_prior_index": 2811,
        "pre_local_high": 4056.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4014.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4011.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4034.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4015.35,
        "D_prior_index": 122,
        "H4_prior_index": 735,
        "H1_prior_index": 2813,
        "pre_local_low": 3997.37,
        "confirmation_time": "2026-06-24T17:20:00Z",
        "impulse_extreme": 3992.985,
        "fib50": 4004.168,
        "fib62": 4006.851,
        "entry_mid": 4005.509,
        "invalid": 4015.35,
        "risk_points": 9.841,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T22:05:00Z",
        "target1": 3995.669,
        "target2": 3985.828,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4000.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4016.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3995.615,
        "D_prior_index": 122,
        "H4_prior_index": 735,
        "H1_prior_index": 2814,
        "pre_local_high": 4034.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4022.435,
        "D_prior_index": 122,
        "H4_prior_index": 735,
        "H1_prior_index": 2814,
        "pre_local_low": 3995.615,
        "confirmation_time": "2026-06-24T17:20:00Z",
        "impulse_extreme": 3992.985,
        "fib50": 4007.71,
        "fib62": 4011.244,
        "entry_mid": 4009.477,
        "invalid": 4022.435,
        "risk_points": 12.958,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-24T22:00:00Z",
        "target1": 3996.519,
        "target2": 3983.561,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T18:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3959.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3994.34,
        "D_prior_index": 122,
        "H4_prior_index": 736,
        "H1_prior_index": 2816,
        "pre_local_low": 3959.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3985.26,
        "D_prior_index": 122,
        "H4_prior_index": 736,
        "H1_prior_index": 2817,
        "pre_local_low": 3959.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3988.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3990.875,
        "D_prior_index": 122,
        "H4_prior_index": 736,
        "H1_prior_index": 2817,
        "pre_local_low": 3966.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4001.3,
        "D_prior_index": 122,
        "H4_prior_index": 736,
        "H1_prior_index": 2818,
        "pre_local_low": 3973.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-24T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4001.4,
        "D_prior_index": 122,
        "H4_prior_index": 736,
        "H1_prior_index": 2818,
        "pre_local_low": 3973.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4000.485,
        "D_prior_index": 123,
        "H4_prior_index": 737,
        "H1_prior_index": 2819,
        "pre_local_high": 4007.825,
        "confirmation_time": "2026-06-24T23:30:00Z",
        "impulse_extreme": 4008.985,
        "fib50": 4004.735,
        "fib62": 4003.715,
        "entry_mid": 4004.225,
        "invalid": 4000.485,
        "risk_points": 3.74,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T00:10:00Z",
        "target1": 4007.965,
        "target2": 4011.705,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-24T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3999.635,
        "D_prior_index": 123,
        "H4_prior_index": 737,
        "H1_prior_index": 2819,
        "pre_local_high": 4007.825,
        "confirmation_time": "2026-06-24T23:30:00Z",
        "impulse_extreme": 4008.985,
        "fib50": 4004.31,
        "fib62": 4003.188,
        "entry_mid": 4003.749,
        "invalid": 3999.635,
        "risk_points": 4.114,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T00:10:00Z",
        "target1": 4007.863,
        "target2": 4011.977,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4006.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3990.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-24T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-24T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4000.805
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3978.5,
        "D_prior_index": 123,
        "H4_prior_index": 737,
        "H1_prior_index": 2821,
        "pre_local_high": 4018.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4001.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4005.825,
        "D_prior_index": 123,
        "H4_prior_index": 738,
        "H1_prior_index": 2822,
        "pre_local_low": 3978.5,
        "confirmation_time": "2026-06-25T01:55:00Z",
        "impulse_extreme": 3972.425,
        "fib50": 3989.125,
        "fib62": 3993.133,
        "entry_mid": 3991.129,
        "invalid": 4005.825,
        "risk_points": 14.696,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T02:20:00Z",
        "target1": 3976.433,
        "target2": 3961.737,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T03:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3989.36,
        "D_prior_index": 123,
        "H4_prior_index": 738,
        "H1_prior_index": 2824,
        "pre_local_low": 3962.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3987.61,
        "D_prior_index": 123,
        "H4_prior_index": 738,
        "H1_prior_index": 2825,
        "pre_local_high": 4001.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3997.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3983.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3989.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T05:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3980.535,
        "D_prior_index": 123,
        "H4_prior_index": 739,
        "H1_prior_index": 2826,
        "pre_local_high": 4000.215,
        "confirmation_time": "2026-06-25T08:30:00Z",
        "impulse_extreme": 4000.915,
        "fib50": 3990.725,
        "fib62": 3988.279,
        "entry_mid": 3989.502,
        "invalid": 3980.535,
        "risk_points": 8.967,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T08:50:00Z",
        "target1": 3998.469,
        "target2": 4007.437,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3974.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T06-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T06:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3975.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3973.59,
        "D_prior_index": 123,
        "H4_prior_index": 739,
        "H1_prior_index": 2828,
        "pre_local_high": 3999.13,
        "confirmation_time": "2026-06-25T08:30:00Z",
        "impulse_extreme": 4000.915,
        "fib50": 3987.253,
        "fib62": 3983.974,
        "entry_mid": 3985.613,
        "invalid": 3973.59,
        "risk_points": 12.023,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T09:35:00Z",
        "target1": 3997.636,
        "target2": 4009.659,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3986.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3989.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T07:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3971.695,
        "D_prior_index": 123,
        "H4_prior_index": 739,
        "H1_prior_index": 2828,
        "pre_local_high": 3989.765,
        "confirmation_time": "2026-06-25T08:00:00Z",
        "impulse_extreme": 3995.365,
        "fib50": 3983.53,
        "fib62": 3980.69,
        "entry_mid": 3982.11,
        "invalid": 3971.695,
        "risk_points": 10.415,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T10:15:00Z",
        "target1": 3992.525,
        "target2": 4002.939,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3995.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4001.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4002.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3997.72,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2830,
        "pre_local_low": 3974.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-25T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3983.45,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2831,
        "pre_local_high": 4002.11,
        "confirmation_time": "2026-06-25T12:40:00Z",
        "impulse_extreme": 4006.89,
        "fib50": 3995.17,
        "fib62": 3992.357,
        "entry_mid": 3993.764,
        "invalid": 3983.45,
        "risk_points": 10.314,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3989.52,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2831,
        "pre_local_low": 3983.45,
        "confirmation_time": "2026-06-25T10:50:00Z",
        "impulse_extreme": 3982.175,
        "fib50": 3985.847,
        "fib62": 3986.729,
        "entry_mid": 3986.288,
        "invalid": 3989.52,
        "risk_points": 3.232,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T11:00:00Z",
        "target1": 3983.056,
        "target2": 3979.825,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3986.32
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3973.64,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2832,
        "pre_local_high": 3993.485,
        "confirmation_time": "2026-06-25T12:30:00Z",
        "impulse_extreme": 4012.045,
        "fib50": 3992.842,
        "fib62": 3988.234,
        "entry_mid": 3990.538,
        "invalid": 3973.64,
        "risk_points": 16.898,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T12:35:00Z",
        "target1": 4007.436,
        "target2": 4024.335,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3987.86,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2832,
        "pre_local_low": 3973.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3978.84,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2833,
        "pre_local_high": 3988.705,
        "confirmation_time": "2026-06-25T12:30:00Z",
        "impulse_extreme": 4012.045,
        "fib50": 3995.443,
        "fib62": 3991.458,
        "entry_mid": 3993.45,
        "invalid": 3978.84,
        "risk_points": 14.61,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T12:35:00Z",
        "target1": 4008.06,
        "target2": 4022.671,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3986.325,
        "D_prior_index": 123,
        "H4_prior_index": 740,
        "H1_prior_index": 2833,
        "pre_local_low": 3973.64
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-25T14:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3999.17,
        "D_prior_index": 123,
        "H4_prior_index": 741,
        "H1_prior_index": 2835,
        "pre_local_high": 4034.225,
        "confirmation_time": "2026-06-25T15:20:00Z",
        "impulse_extreme": 4040.79,
        "fib50": 4019.98,
        "fib62": 4014.986,
        "entry_mid": 4017.483,
        "invalid": 3999.17,
        "risk_points": 18.313,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T14:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4028.55,
        "D_prior_index": 123,
        "H4_prior_index": 741,
        "H1_prior_index": 2835,
        "pre_local_low": 3999.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4042.995,
        "D_prior_index": 123,
        "H4_prior_index": 741,
        "H1_prior_index": 2837,
        "pre_local_low": 4005.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4044.085,
        "D_prior_index": 123,
        "H4_prior_index": 741,
        "H1_prior_index": 2837,
        "pre_local_low": 4005.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.12
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4029.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4026.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T18:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4031.38
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T18:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4044.14,
        "D_prior_index": 123,
        "H4_prior_index": 742,
        "H1_prior_index": 2839,
        "pre_local_low": 4026.025,
        "confirmation_time": "2026-06-25T20:35:00Z",
        "impulse_extreme": 4025.81,
        "fib50": 4034.975,
        "fib62": 4037.175,
        "entry_mid": 4036.075,
        "invalid": 4044.14,
        "risk_points": 8.065,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T22:35:00Z",
        "target1": 4028.01,
        "target2": 4019.944,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4029.88,
        "D_prior_index": 123,
        "H4_prior_index": 742,
        "H1_prior_index": 2839,
        "pre_local_high": 4044.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4043.87,
        "D_prior_index": 123,
        "H4_prior_index": 742,
        "H1_prior_index": 2840,
        "pre_local_low": 4026.025,
        "confirmation_time": "2026-06-25T20:35:00Z",
        "impulse_extreme": 4025.81,
        "fib50": 4034.84,
        "fib62": 4037.007,
        "entry_mid": 4035.924,
        "invalid": 4043.87,
        "risk_points": 7.946,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-25T22:35:00Z",
        "target1": 4027.977,
        "target2": 4020.031,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4035.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4024.51,
        "D_prior_index": 123,
        "H4_prior_index": 742,
        "H1_prior_index": 2841,
        "pre_local_high": 4043.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T22:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4030.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-25T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4019.935,
        "D_prior_index": 124,
        "H4_prior_index": 743,
        "H1_prior_index": 2842,
        "pre_local_high": 4037.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-25T23:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-25T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-25T23:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4030.535,
        "D_prior_index": 124,
        "H4_prior_index": 743,
        "H1_prior_index": 2843,
        "pre_local_low": 4019.935,
        "confirmation_time": "2026-06-25T23:45:00Z",
        "impulse_extreme": 4016.56,
        "fib50": 4023.547,
        "fib62": 4025.224,
        "entry_mid": 4024.386,
        "invalid": 4030.535,
        "risk_points": 6.149,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T00:15:00Z",
        "target1": 4018.237,
        "target2": 4012.088,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4011.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T00:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4023.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T00:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4012.3,
        "D_prior_index": 124,
        "H4_prior_index": 743,
        "H1_prior_index": 2844,
        "pre_local_high": 4030.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4014.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4030.015,
        "D_prior_index": 124,
        "H4_prior_index": 744,
        "H1_prior_index": 2845,
        "pre_local_low": 4011.575,
        "confirmation_time": "2026-06-26T02:15:00Z",
        "impulse_extreme": 4009.32,
        "fib50": 4019.668,
        "fib62": 4022.151,
        "entry_mid": 4020.909,
        "invalid": 4030.015,
        "risk_points": 9.106,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T05:30:00Z",
        "target1": 4011.803,
        "target2": 4002.698,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4016.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4014.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T02:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4013.545,
        "D_prior_index": 124,
        "H4_prior_index": 744,
        "H1_prior_index": 2846,
        "pre_local_high": 4030.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T02:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4023.355,
        "D_prior_index": 124,
        "H4_prior_index": 744,
        "H1_prior_index": 2846,
        "pre_local_low": 4012.3,
        "confirmation_time": "2026-06-26T02:15:00Z",
        "impulse_extreme": 4009.32,
        "fib50": 4016.338,
        "fib62": 4018.022,
        "entry_mid": 4017.18,
        "invalid": 4023.355,
        "risk_points": 6.175,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T05:15:00Z",
        "target1": 4011.004,
        "target2": 4004.829,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4000.175,
        "D_prior_index": 124,
        "H4_prior_index": 744,
        "H1_prior_index": 2847,
        "pre_local_low": 3982.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4012.15,
        "D_prior_index": 124,
        "H4_prior_index": 744,
        "H1_prior_index": 2848,
        "pre_local_low": 3982.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4001.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4006.31
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4021.57,
        "D_prior_index": 124,
        "H4_prior_index": 745,
        "H1_prior_index": 2849,
        "pre_local_low": 3997.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4033.935,
        "D_prior_index": 124,
        "H4_prior_index": 745,
        "H1_prior_index": 2851,
        "pre_local_low": 4005.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4033.26,
        "D_prior_index": 124,
        "H4_prior_index": 745,
        "H1_prior_index": 2852,
        "pre_local_low": 4008.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4036.305,
        "D_prior_index": 124,
        "H4_prior_index": 745,
        "H1_prior_index": 2852,
        "pre_local_low": 4022.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4037.805,
        "D_prior_index": 124,
        "H4_prior_index": 745,
        "H1_prior_index": 2852,
        "pre_local_low": 4025.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T09:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4029.59,
        "D_prior_index": 124,
        "H4_prior_index": 746,
        "H1_prior_index": 2853,
        "pre_local_high": 4039.875,
        "confirmation_time": "2026-06-26T09:15:00Z",
        "impulse_extreme": 4047.18,
        "fib50": 4038.385,
        "fib62": 4036.274,
        "entry_mid": 4037.33,
        "invalid": 4029.59,
        "risk_points": 7.74,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T12:40:00Z",
        "target1": 4045.069,
        "target2": 4052.809,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4054.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4044.47,
        "D_prior_index": 124,
        "H4_prior_index": 746,
        "H1_prior_index": 2854,
        "pre_local_high": 4054.16,
        "confirmation_time": "2026-06-26T10:30:00Z",
        "impulse_extreme": 4054.59,
        "fib50": 4049.53,
        "fib62": 4048.316,
        "entry_mid": 4048.923,
        "invalid": 4044.47,
        "risk_points": 4.453,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T10:35:00Z",
        "target1": 4053.376,
        "target2": 4057.828,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4042.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4054.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T11:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4055.61,
        "D_prior_index": 124,
        "H4_prior_index": 746,
        "H1_prior_index": 2855,
        "pre_local_low": 4042.42,
        "confirmation_time": "2026-06-26T12:40:00Z",
        "impulse_extreme": 4035.935,
        "fib50": 4045.773,
        "fib62": 4048.133,
        "entry_mid": 4046.953,
        "invalid": 4055.61,
        "risk_points": 8.657,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T12:50:00Z",
        "target1": 4038.296,
        "target2": 4029.639,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4046.14,
        "D_prior_index": 124,
        "H4_prior_index": 746,
        "H1_prior_index": 2855,
        "pre_local_high": 4055.61,
        "confirmation_time": "2026-06-26T12:55:00Z",
        "impulse_extreme": 4061.615,
        "fib50": 4053.877,
        "fib62": 4052.02,
        "entry_mid": 4052.949,
        "invalid": 4046.14,
        "risk_points": 6.809,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T13:00:00Z",
        "target1": 4059.758,
        "target2": 4066.567,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4055.76
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T12:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4042.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4051.66,
        "D_prior_index": 124,
        "H4_prior_index": 746,
        "H1_prior_index": 2856,
        "pre_local_low": 4042.61,
        "confirmation_time": "2026-06-26T12:40:00Z",
        "impulse_extreme": 4035.935,
        "fib50": 4043.797,
        "fib62": 4045.684,
        "entry_mid": 4044.741,
        "invalid": 4051.66,
        "risk_points": 6.919,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T12:45:00Z",
        "target1": 4037.822,
        "target2": 4030.903,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4066.13,
        "D_prior_index": 124,
        "H4_prior_index": 747,
        "H1_prior_index": 2857,
        "pre_local_low": 4035.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-26T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4043.23,
        "D_prior_index": 124,
        "H4_prior_index": 747,
        "H1_prior_index": 2857,
        "pre_local_high": 4066.13,
        "confirmation_time": "2026-06-26T13:55:00Z",
        "impulse_extreme": 4078.265,
        "fib50": 4060.747,
        "fib62": 4056.543,
        "entry_mid": 4058.645,
        "invalid": 4043.23,
        "risk_points": 15.415,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4093.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4076.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4091.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4095.985,
        "D_prior_index": 124,
        "H4_prior_index": 747,
        "H1_prior_index": 2859,
        "pre_local_low": 4072.195,
        "confirmation_time": "2026-06-26T18:20:00Z",
        "impulse_extreme": 4071.635,
        "fib50": 4083.81,
        "fib62": 4086.732,
        "entry_mid": 4085.271,
        "invalid": 4095.985,
        "risk_points": 10.714,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T20:55:00Z",
        "target1": 4074.557,
        "target2": 4063.843,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-26T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4093.785,
        "D_prior_index": 124,
        "H4_prior_index": 747,
        "H1_prior_index": 2860,
        "pre_local_low": 4075.72,
        "confirmation_time": "2026-06-26T17:50:00Z",
        "impulse_extreme": 4074.61,
        "fib50": 4084.198,
        "fib62": 4086.499,
        "entry_mid": 4085.348,
        "invalid": 4093.785,
        "risk_points": 8.437,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-26T20:55:00Z",
        "target1": 4076.911,
        "target2": 4068.474,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4082.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4082.455,
        "D_prior_index": 124,
        "H4_prior_index": 748,
        "H1_prior_index": 2861,
        "pre_local_high": 4095.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4088.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4072.495,
        "D_prior_index": 124,
        "H4_prior_index": 748,
        "H1_prior_index": 2862,
        "pre_local_high": 4093.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.635
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4064.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-26T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4070.95
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-26T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4064.795,
        "D_prior_index": 124,
        "H4_prior_index": 748,
        "H1_prior_index": 2864,
        "pre_local_high": 4075.635,
        "confirmation_time": "2026-06-26T20:45:00Z",
        "impulse_extreme": 4076.455,
        "fib50": 4070.625,
        "fib62": 4069.226,
        "entry_mid": 4069.925,
        "invalid": 4064.795,
        "risk_points": 5.13,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-26T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-26T20:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4073.245,
        "D_prior_index": 124,
        "H4_prior_index": 748,
        "H1_prior_index": 2864,
        "pre_local_low": 4064.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-28T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-28T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4069.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-28T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-28T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4070.545,
        "D_prior_index": 125,
        "H4_prior_index": 749,
        "H1_prior_index": 2866,
        "pre_local_low": 4053.375,
        "confirmation_time": "2026-06-29T00:20:00Z",
        "impulse_extreme": 4050.665,
        "fib50": 4060.605,
        "fib62": 4062.991,
        "entry_mid": 4061.798,
        "invalid": 4070.545,
        "risk_points": 8.747,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-29T00:35:00Z",
        "target1": 4053.051,
        "target2": 4044.303,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-28T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-28T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4052.145,
        "D_prior_index": 125,
        "H4_prior_index": 749,
        "H1_prior_index": 2866,
        "pre_local_high": 4091.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4074.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4074.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4066.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4054.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4070.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4070.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4058.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-29T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4071.85,
        "D_prior_index": 125,
        "H4_prior_index": 750,
        "H1_prior_index": 2869,
        "pre_local_low": 4053.77,
        "confirmation_time": "2026-06-29T04:55:00Z",
        "impulse_extreme": 4049.665,
        "fib50": 4060.757,
        "fib62": 4063.42,
        "entry_mid": 4062.089,
        "invalid": 4071.85,
        "risk_points": 9.761,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-29T06:05:00Z",
        "target1": 4052.327,
        "target2": 4042.566,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4065.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4062.37,
        "D_prior_index": 125,
        "H4_prior_index": 750,
        "H1_prior_index": 2871,
        "pre_local_high": 4076.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T05-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T05:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4047.455,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2872,
        "pre_local_high": 4076.015
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4039.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-29T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4055.05,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2873,
        "pre_local_high": 4064.14,
        "confirmation_time": "2026-06-29T07:25:00Z",
        "impulse_extreme": 4066.485,
        "fib50": 4060.767,
        "fib62": 4059.395,
        "entry_mid": 4060.081,
        "invalid": 4055.05,
        "risk_points": 5.031,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-29T08:00:00Z",
        "target1": 4065.113,
        "target2": 4070.144,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4060.93,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2874,
        "pre_local_high": 4066.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4068.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4060.58,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2875,
        "pre_local_high": 4068.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4060.555,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2875,
        "pre_local_high": 4068.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-29T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4066.78,
        "D_prior_index": 125,
        "H4_prior_index": 751,
        "H1_prior_index": 2875,
        "pre_local_low": 4056.185,
        "confirmation_time": "2026-06-29T08:40:00Z",
        "impulse_extreme": 4054.795,
        "fib50": 4060.788,
        "fib62": 4062.226,
        "entry_mid": 4061.507,
        "invalid": 4066.78,
        "risk_points": 5.273,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T09-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T09:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4045.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4031.94
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4038.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4032.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4038.765,
        "D_prior_index": 125,
        "H4_prior_index": 752,
        "H1_prior_index": 2878,
        "pre_local_low": 4024.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4038.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4037.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T12:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4037.605,
        "D_prior_index": 125,
        "H4_prior_index": 752,
        "H1_prior_index": 2879,
        "pre_local_high": 4052.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-29T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4047.96,
        "D_prior_index": 125,
        "H4_prior_index": 752,
        "H1_prior_index": 2879,
        "pre_local_low": 4027.51,
        "confirmation_time": "2026-06-29T14:00:00Z",
        "impulse_extreme": 4022.845,
        "fib50": 4035.403,
        "fib62": 4038.416,
        "entry_mid": 4036.909,
        "invalid": 4047.96,
        "risk_points": 11.051,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4051.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.08,
        "D_prior_index": 125,
        "H4_prior_index": 753,
        "H1_prior_index": 2880,
        "pre_local_high": 4052.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T14:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4000.325,
        "D_prior_index": 125,
        "H4_prior_index": 753,
        "H1_prior_index": 2881,
        "pre_local_high": 4051.935
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4018.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4030.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4016.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4027.715,
        "D_prior_index": 125,
        "H4_prior_index": 753,
        "H1_prior_index": 2882,
        "pre_local_low": 4000.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4022.085,
        "D_prior_index": 125,
        "H4_prior_index": 753,
        "H1_prior_index": 2883,
        "pre_local_high": 4030.525
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T17:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4022.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4019.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4020.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4019.59,
        "D_prior_index": 125,
        "H4_prior_index": 754,
        "H1_prior_index": 2885,
        "pre_local_high": 4032.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T19:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4005.435,
        "D_prior_index": 125,
        "H4_prior_index": 754,
        "H1_prior_index": 2886,
        "pre_local_high": 4025.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4009.57,
        "D_prior_index": 126,
        "H4_prior_index": 755,
        "H1_prior_index": 2888,
        "pre_local_high": 4022.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-29T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4017.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-29T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4022.505,
        "D_prior_index": 126,
        "H4_prior_index": 755,
        "H1_prior_index": 2889,
        "pre_local_low": 4009.57,
        "confirmation_time": "2026-06-30T00:00:00Z",
        "impulse_extreme": 4007.58,
        "fib50": 4015.043,
        "fib62": 4016.834,
        "entry_mid": 4015.938,
        "invalid": 4022.505,
        "risk_points": 6.567,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-29T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-29T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4013.675,
        "D_prior_index": 126,
        "H4_prior_index": 755,
        "H1_prior_index": 2889,
        "pre_local_high": 4022.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3961.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3954.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-30T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3970.6,
        "D_prior_index": 126,
        "H4_prior_index": 756,
        "H1_prior_index": 2892,
        "pre_local_low": 3942.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3971.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3960.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4023.785,
        "D_prior_index": 126,
        "H4_prior_index": 757,
        "H1_prior_index": 2897,
        "pre_local_high": 4034.325,
        "confirmation_time": "2026-06-30T08:00:00Z",
        "impulse_extreme": 4036.565,
        "fib50": 4030.175,
        "fib62": 4028.641,
        "entry_mid": 4029.408,
        "invalid": 4023.785,
        "risk_points": 5.623,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T08:05:00Z",
        "target1": 4035.031,
        "target2": 4040.655,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4034.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4025.575,
        "D_prior_index": 126,
        "H4_prior_index": 757,
        "H1_prior_index": 2897,
        "pre_local_high": 4034.86,
        "confirmation_time": "2026-06-30T08:00:00Z",
        "impulse_extreme": 4036.565,
        "fib50": 4031.07,
        "fib62": 4029.751,
        "entry_mid": 4030.411,
        "invalid": 4025.575,
        "risk_points": 4.836,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T08:05:00Z",
        "target1": 4035.246,
        "target2": 4040.082,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4037.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T08:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4020.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4026.865,
        "D_prior_index": 126,
        "H4_prior_index": 757,
        "H1_prior_index": 2898,
        "pre_local_low": 4020.27,
        "confirmation_time": "2026-06-30T08:35:00Z",
        "impulse_extreme": 4018.39,
        "fib50": 4022.627,
        "fib62": 4023.644,
        "entry_mid": 4023.136,
        "invalid": 4026.865,
        "risk_points": 3.729,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T09:20:00Z",
        "target1": 4019.407,
        "target2": 4015.678,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4013.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4022.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4012.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4029.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4031.385
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.45
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.325,
        "D_prior_index": 126,
        "H4_prior_index": 758,
        "H1_prior_index": 2901,
        "pre_local_low": 4012.47,
        "confirmation_time": "2026-06-30T12:55:00Z",
        "impulse_extreme": 4008.74,
        "fib50": 4021.532,
        "fib62": 4024.603,
        "entry_mid": 4023.068,
        "invalid": 4034.325,
        "risk_points": 11.257,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T13:05:00Z",
        "target1": 4011.81,
        "target2": 4000.553,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T11:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4028.455,
        "D_prior_index": 126,
        "H4_prior_index": 758,
        "H1_prior_index": 2901,
        "pre_local_high": 4034.325,
        "confirmation_time": "2026-06-30T11:40:00Z",
        "impulse_extreme": 4035.2,
        "fib50": 4031.827,
        "fib62": 4031.018,
        "entry_mid": 4031.423,
        "invalid": 4028.455,
        "risk_points": 2.968,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T11:45:00Z",
        "target1": 4034.391,
        "target2": 4037.358,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4037.43,
        "D_prior_index": 126,
        "H4_prior_index": 758,
        "H1_prior_index": 2901,
        "pre_local_low": 4021.565,
        "confirmation_time": "2026-06-30T12:20:00Z",
        "impulse_extreme": 4017.665,
        "fib50": 4027.547,
        "fib62": 4029.919,
        "entry_mid": 4028.733,
        "invalid": 4037.43,
        "risk_points": 8.697,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T13:15:00Z",
        "target1": 4020.037,
        "target2": 4011.34,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4012.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4033.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4013.29,
        "D_prior_index": 126,
        "H4_prior_index": 759,
        "H1_prior_index": 2903,
        "pre_local_high": 4034.745,
        "confirmation_time": "2026-06-30T14:05:00Z",
        "impulse_extreme": 4045.255,
        "fib50": 4029.273,
        "fib62": 4025.437,
        "entry_mid": 4027.355,
        "invalid": 4013.29,
        "risk_points": 14.065,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T15:15:00Z",
        "target1": 4041.419,
        "target2": 4055.484,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4034.93
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.86
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T16-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-30T16:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4031.485,
        "D_prior_index": 126,
        "H4_prior_index": 759,
        "H1_prior_index": 2906,
        "pre_local_low": 4022.335
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4027.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-30T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4032.325,
        "D_prior_index": 126,
        "H4_prior_index": 759,
        "H1_prior_index": 2906,
        "pre_local_low": 4022.335,
        "confirmation_time": "2026-06-30T19:20:00Z",
        "impulse_extreme": 4021.94,
        "fib50": 4027.132,
        "fib62": 4028.379,
        "entry_mid": 4027.756,
        "invalid": 4032.325,
        "risk_points": 4.569,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-30T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.015,
        "D_prior_index": 126,
        "H4_prior_index": 759,
        "H1_prior_index": 2906,
        "pre_local_low": 4022.335,
        "confirmation_time": "2026-06-30T19:20:00Z",
        "impulse_extreme": 4021.94,
        "fib50": 4027.977,
        "fib62": 4029.427,
        "entry_mid": 4028.702,
        "invalid": 4034.015,
        "risk_points": 5.313,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4030.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4032.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-30T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4020.985,
        "D_prior_index": 126,
        "H4_prior_index": 760,
        "H1_prior_index": 2909,
        "pre_local_high": 4033.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-30T20:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4013.95,
        "D_prior_index": 126,
        "H4_prior_index": 760,
        "H1_prior_index": 2910,
        "pre_local_high": 4032.945
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T20-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-06-30T20:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4021.265,
        "D_prior_index": 126,
        "H4_prior_index": 760,
        "H1_prior_index": 2910,
        "pre_local_low": 4013.95,
        "confirmation_time": "2026-06-30T20:25:00Z",
        "impulse_extreme": 4012.34,
        "fib50": 4016.802,
        "fib62": 4017.874,
        "entry_mid": 4017.338,
        "invalid": 4021.265,
        "risk_points": 3.927,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-06-30T22:05:00Z",
        "target1": 4013.411,
        "target2": 4009.484,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-06-30T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4012.13,
        "D_prior_index": 127,
        "H4_prior_index": 761,
        "H1_prior_index": 2911,
        "pre_local_high": 4022.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4018.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-06-30T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4018.505,
        "D_prior_index": 127,
        "H4_prior_index": 761,
        "H1_prior_index": 2912,
        "pre_local_low": 4006.58,
        "confirmation_time": "2026-06-30T23:55:00Z",
        "impulse_extreme": 4005.505,
        "fib50": 4012.005,
        "fib62": 4013.565,
        "entry_mid": 4012.785,
        "invalid": 4018.505,
        "risk_points": 5.72,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-06-30T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-06-30T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4008.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T00-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T00:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3993.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-01T01:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3999.9,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2914,
        "pre_local_low": 3990.335,
        "confirmation_time": "2026-07-01T01:05:00Z",
        "impulse_extreme": 3983.015,
        "fib50": 3991.457,
        "fib62": 3993.484,
        "entry_mid": 3992.471,
        "invalid": 3999.9,
        "risk_points": 7.429,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T01:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3975.775,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2914,
        "pre_local_high": 4011.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3975.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T01:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3988.77,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2914,
        "pre_local_low": 3975.775,
        "confirmation_time": "2026-07-01T02:00:00Z",
        "impulse_extreme": 3974.455,
        "fib50": 3981.613,
        "fib62": 3983.33,
        "entry_mid": 3982.471,
        "invalid": 3988.77,
        "risk_points": 6.299,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T02:20:00Z",
        "target1": 3976.173,
        "target2": 3969.874,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3974.1,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2914,
        "pre_local_high": 4009.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3970.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3978.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3985.78
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3987.095,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2916,
        "pre_local_low": 3970.395,
        "confirmation_time": "2026-07-01T06:05:00Z",
        "impulse_extreme": 3964.58,
        "fib50": 3975.837,
        "fib62": 3978.539,
        "entry_mid": 3977.188,
        "invalid": 3987.095,
        "risk_points": 9.907,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T07:55:00Z",
        "target1": 3967.282,
        "target2": 3957.375,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3981.14,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2917,
        "pre_local_low": 3975.125,
        "confirmation_time": "2026-07-01T04:35:00Z",
        "impulse_extreme": 3973.94,
        "fib50": 3977.54,
        "fib62": 3978.404,
        "entry_mid": 3977.972,
        "invalid": 3981.14,
        "risk_points": 3.168,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T04:45:00Z",
        "target1": 3974.804,
        "target2": 3971.636,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3972.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3980.89,
        "D_prior_index": 127,
        "H4_prior_index": 762,
        "H1_prior_index": 2917,
        "pre_local_low": 3974.265,
        "confirmation_time": "2026-07-01T05:00:00Z",
        "impulse_extreme": 3972.01,
        "fib50": 3976.45,
        "fib62": 3977.516,
        "entry_mid": 3976.983,
        "invalid": 3980.89,
        "risk_points": 3.907,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T05:30:00Z",
        "target1": 3973.076,
        "target2": 3969.168,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T04-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T04:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3982.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3979.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3963.385,
        "D_prior_index": 127,
        "H4_prior_index": 763,
        "H1_prior_index": 2919,
        "pre_local_high": 3982.985
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3963.34
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3973.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T07:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3973.905,
        "D_prior_index": 127,
        "H4_prior_index": 763,
        "H1_prior_index": 2920,
        "pre_local_low": 3963.34,
        "confirmation_time": "2026-07-01T07:10:00Z",
        "impulse_extreme": 3960.825,
        "fib50": 3967.365,
        "fib62": 3968.935,
        "entry_mid": 3968.15,
        "invalid": 3973.905,
        "risk_points": 5.755,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T07:15:00Z",
        "target1": 3962.395,
        "target2": 3956.639,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3960.275,
        "D_prior_index": 127,
        "H4_prior_index": 763,
        "H1_prior_index": 2920,
        "pre_local_high": 3979.08,
        "confirmation_time": "2026-07-01T08:15:00Z",
        "impulse_extreme": 3983.1,
        "fib50": 3971.688,
        "fib62": 3968.948,
        "entry_mid": 3970.318,
        "invalid": 3960.275,
        "risk_points": 10.043,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-01T08:55:00Z",
        "target1": 3980.361,
        "target2": 3990.404,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3972.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3971.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3977.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3989.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3981.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3994.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4035.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4033.14,
        "D_prior_index": 127,
        "H4_prior_index": 764,
        "H1_prior_index": 2925,
        "pre_local_low": 3991.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.205,
        "D_prior_index": 127,
        "H4_prior_index": 765,
        "H1_prior_index": 2926,
        "pre_local_low": 4012.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4082.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4106.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4115.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4086.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4078.615
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4076.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4088.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4088.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4080.62,
        "D_prior_index": 127,
        "H4_prior_index": 765,
        "H1_prior_index": 2929,
        "pre_local_high": 4115.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.885,
        "D_prior_index": 127,
        "H4_prior_index": 766,
        "H1_prior_index": 2930,
        "pre_local_high": 4090.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-01T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4073.235,
        "D_prior_index": 127,
        "H4_prior_index": 766,
        "H1_prior_index": 2930,
        "pre_local_low": 4067.75,
        "confirmation_time": "2026-07-01T18:15:00Z",
        "impulse_extreme": 4064.94,
        "fib50": 4069.088,
        "fib62": 4070.083,
        "entry_mid": 4069.585,
        "invalid": 4073.235,
        "risk_points": 3.65,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4057.865,
        "D_prior_index": 127,
        "H4_prior_index": 766,
        "H1_prior_index": 2931,
        "pre_local_high": 4073.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-01T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4035.155,
        "D_prior_index": 128,
        "H4_prior_index": 767,
        "H1_prior_index": 2934,
        "pre_local_high": 4056.93,
        "confirmation_time": "2026-07-02T01:00:00Z",
        "impulse_extreme": 4068.73,
        "fib50": 4051.943,
        "fib62": 4047.914,
        "entry_mid": 4049.928,
        "invalid": 4035.155,
        "risk_points": 14.773,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T01:20:00Z",
        "target1": 4064.701,
        "target2": 4079.474,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-01T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4045.185,
        "D_prior_index": 128,
        "H4_prior_index": 767,
        "H1_prior_index": 2935,
        "pre_local_low": 4030.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T23:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4040.69
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-01T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-01T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4033.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4030.895
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T01-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T01:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4050.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4045.29,
        "D_prior_index": 128,
        "H4_prior_index": 768,
        "H1_prior_index": 2937,
        "pre_local_high": 4068.73,
        "confirmation_time": "2026-07-02T03:45:00Z",
        "impulse_extreme": 4069.415,
        "fib50": 4057.352,
        "fib62": 4054.457,
        "entry_mid": 4055.905,
        "invalid": 4045.29,
        "risk_points": 10.615,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T05:10:00Z",
        "target1": 4066.52,
        "target2": 4077.135,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4056.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4041.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4047.675
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4061.065,
        "D_prior_index": 128,
        "H4_prior_index": 768,
        "H1_prior_index": 2938,
        "pre_local_low": 4041.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4062.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4053.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4066.505
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T05-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T05:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.865,
        "D_prior_index": 128,
        "H4_prior_index": 769,
        "H1_prior_index": 2941,
        "pre_local_low": 4053.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T06:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T06:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4066.155,
        "D_prior_index": 128,
        "H4_prior_index": 769,
        "H1_prior_index": 2942,
        "pre_local_high": 4079.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4061.475,
        "D_prior_index": 128,
        "H4_prior_index": 769,
        "H1_prior_index": 2944,
        "pre_local_high": 4079.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4078.035,
        "D_prior_index": 128,
        "H4_prior_index": 769,
        "H1_prior_index": 2944,
        "pre_local_low": 4060.815,
        "confirmation_time": "2026-07-02T11:00:00Z",
        "impulse_extreme": 4059.99,
        "fib50": 4069.012,
        "fib62": 4071.178,
        "entry_mid": 4070.095,
        "invalid": 4078.035,
        "risk_points": 7.94,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T11:40:00Z",
        "target1": 4062.155,
        "target2": 4054.216,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4080.12,
        "D_prior_index": 128,
        "H4_prior_index": 769,
        "H1_prior_index": 2944,
        "pre_local_low": 4060.815,
        "confirmation_time": "2026-07-02T11:00:00Z",
        "impulse_extreme": 4059.99,
        "fib50": 4070.055,
        "fib62": 4072.471,
        "entry_mid": 4071.263,
        "invalid": 4080.12,
        "risk_points": 8.857,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T11:40:00Z",
        "target1": 4062.406,
        "target2": 4053.548,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4064.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4072.365,
        "D_prior_index": 128,
        "H4_prior_index": 770,
        "H1_prior_index": 2945,
        "pre_local_low": 4064.095,
        "confirmation_time": "2026-07-02T10:00:00Z",
        "impulse_extreme": 4062.96,
        "fib50": 4067.662,
        "fib62": 4068.791,
        "entry_mid": 4068.227,
        "invalid": 4072.365,
        "risk_points": 4.138,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T10:20:00Z",
        "target1": 4064.089,
        "target2": 4059.95,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-02T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4062.045,
        "D_prior_index": 128,
        "H4_prior_index": 770,
        "H1_prior_index": 2946,
        "pre_local_high": 4080.12,
        "confirmation_time": "2026-07-02T12:30:00Z",
        "impulse_extreme": 4127.635,
        "fib50": 4094.84,
        "fib62": 4086.969,
        "entry_mid": 4090.905,
        "invalid": 4062.045,
        "risk_points": 28.86,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-02T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.975,
        "D_prior_index": 128,
        "H4_prior_index": 770,
        "H1_prior_index": 2946,
        "pre_local_low": 4062.045,
        "confirmation_time": "2026-07-02T10:45:00Z",
        "impulse_extreme": 4061.86,
        "fib50": 4064.918,
        "fib62": 4065.651,
        "entry_mid": 4065.284,
        "invalid": 4067.975,
        "risk_points": 2.691,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4068.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4061.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4057.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4067.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4072.325,
        "D_prior_index": 128,
        "H4_prior_index": 770,
        "H1_prior_index": 2947,
        "pre_local_low": 4057.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4144.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4114.745
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4131.365,
        "D_prior_index": 128,
        "H4_prior_index": 771,
        "H1_prior_index": 2951,
        "pre_local_low": 4109.445,
        "confirmation_time": "2026-07-02T16:30:00Z",
        "impulse_extreme": 4102.2,
        "fib50": 4116.782,
        "fib62": 4120.282,
        "entry_mid": 4118.532,
        "invalid": 4131.365,
        "risk_points": 12.833,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T16:45:00Z",
        "target1": 4105.7,
        "target2": 4092.867,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-02T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4130.39,
        "D_prior_index": 128,
        "H4_prior_index": 771,
        "H1_prior_index": 2952,
        "pre_local_low": 4114.06,
        "confirmation_time": "2026-07-02T16:30:00Z",
        "impulse_extreme": 4102.2,
        "fib50": 4116.295,
        "fib62": 4119.678,
        "entry_mid": 4117.986,
        "invalid": 4130.39,
        "risk_points": 12.404,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-02T16:40:00Z",
        "target1": 4105.583,
        "target2": 4093.179,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T17-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T17:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4113.51,
        "D_prior_index": 128,
        "H4_prior_index": 772,
        "H1_prior_index": 2953,
        "pre_local_high": 4131.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4105.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4127.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4119.88,
        "D_prior_index": 128,
        "H4_prior_index": 772,
        "H1_prior_index": 2954,
        "pre_local_high": 4127.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4124.485,
        "D_prior_index": 128,
        "H4_prior_index": 772,
        "H1_prior_index": 2955,
        "pre_local_low": 4105.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4118.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4122.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4126.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4126.565
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4127.485,
        "D_prior_index": 129,
        "H4_prior_index": 773,
        "H1_prior_index": 2958,
        "pre_local_low": 4118.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-02T23:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4121.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-02T23-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-02T23:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4135.08,
        "D_prior_index": 129,
        "H4_prior_index": 773,
        "H1_prior_index": 2958,
        "pre_local_low": 4118.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-03T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4122.775,
        "D_prior_index": 129,
        "H4_prior_index": 773,
        "H1_prior_index": 2959,
        "pre_local_high": 4135.08,
        "confirmation_time": "2026-07-03T00:15:00Z",
        "impulse_extreme": 4136.32,
        "fib50": 4129.547,
        "fib62": 4127.922,
        "entry_mid": 4128.735,
        "invalid": 4122.775,
        "risk_points": 5.96,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T01:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4195.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4175.525,
        "D_prior_index": 129,
        "H4_prior_index": 774,
        "H1_prior_index": 2960,
        "pre_local_high": 4195.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4184.495,
        "D_prior_index": 129,
        "H4_prior_index": 774,
        "H1_prior_index": 2961,
        "pre_local_low": 4133.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4176.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4179.28,
        "D_prior_index": 129,
        "H4_prior_index": 774,
        "H1_prior_index": 2962,
        "pre_local_high": 4195.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4173.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4183.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4175.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4174.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4181.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T05:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4182.08
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T06-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-03T06:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4160.415,
        "D_prior_index": 129,
        "H4_prior_index": 775,
        "H1_prior_index": 2965,
        "pre_local_high": 4182.08,
        "confirmation_time": "2026-07-03T08:00:00Z",
        "impulse_extreme": 4184.835,
        "fib50": 4172.625,
        "fib62": 4169.695,
        "entry_mid": 4171.16,
        "invalid": 4160.415,
        "risk_points": 10.745,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-03T09:25:00Z",
        "target1": 4181.905,
        "target2": 4192.649,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4174.515
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4181.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4169.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4181.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4180.64,
        "D_prior_index": 129,
        "H4_prior_index": 775,
        "H1_prior_index": 2967,
        "pre_local_high": 4186.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4186.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4176.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4175.965,
        "D_prior_index": 129,
        "H4_prior_index": 776,
        "H1_prior_index": 2968,
        "pre_local_high": 4186.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4168.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4175.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T10:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4170.865,
        "D_prior_index": 129,
        "H4_prior_index": 776,
        "H1_prior_index": 2969,
        "pre_local_high": 4186.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T10-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T10:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4181.275
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4174.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-03T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4186.125,
        "D_prior_index": 129,
        "H4_prior_index": 776,
        "H1_prior_index": 2970,
        "pre_local_low": 4168.57,
        "confirmation_time": "2026-07-03T13:05:00Z",
        "impulse_extreme": 4166.5,
        "fib50": 4176.312,
        "fib62": 4178.667,
        "entry_mid": 4177.49,
        "invalid": 4186.125,
        "risk_points": 8.635,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-03T16:55:00Z",
        "target1": 4168.855,
        "target2": 4160.22,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-03T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4186.46,
        "D_prior_index": 129,
        "H4_prior_index": 776,
        "H1_prior_index": 2970,
        "pre_local_low": 4174.8,
        "confirmation_time": "2026-07-03T12:20:00Z",
        "impulse_extreme": 4173.195,
        "fib50": 4179.827,
        "fib62": 4181.419,
        "entry_mid": 4180.623,
        "invalid": 4186.46,
        "risk_points": 5.837,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T12-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T12:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4172.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-03T13:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4179.38,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2972,
        "pre_local_low": 4172.255,
        "confirmation_time": "2026-07-03T13:05:00Z",
        "impulse_extreme": 4166.5,
        "fib50": 4172.94,
        "fib62": 4174.486,
        "entry_mid": 4173.713,
        "invalid": 4179.38,
        "risk_points": 5.667,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-03T15:00:00Z",
        "target1": 4168.046,
        "target2": 4162.378,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-03T13:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4165.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4167.475,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2973,
        "pre_local_low": 4155.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4174.51,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2974,
        "pre_local_low": 4155.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-03T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4166.13,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2974,
        "pre_local_high": 4174.51,
        "confirmation_time": "2026-07-03T16:50:00Z",
        "impulse_extreme": 4175.97,
        "fib50": 4171.05,
        "fib62": 4169.869,
        "entry_mid": 4170.46,
        "invalid": 4166.13,
        "risk_points": 4.33,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-03T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4169.065,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2974,
        "pre_local_low": 4155.41
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-03T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-03T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.0,
        "D_prior_index": 129,
        "H4_prior_index": 777,
        "H1_prior_index": 2975,
        "pre_local_high": 4174.51,
        "confirmation_time": "2026-07-03T16:50:00Z",
        "impulse_extreme": 4175.97,
        "fib50": 4169.485,
        "fib62": 4167.929,
        "entry_mid": 4168.707,
        "invalid": 4163.0,
        "risk_points": 5.707,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-05T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-05T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4177.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-05T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-05T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4186.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-05T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-05T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4183.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-05T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-05T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4191.665,
        "D_prior_index": 130,
        "H4_prior_index": 778,
        "H1_prior_index": 2977,
        "pre_local_low": 4164.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-05T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-05T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4186.675,
        "D_prior_index": 130,
        "H4_prior_index": 778,
        "H1_prior_index": 2977,
        "pre_local_high": 4191.665,
        "confirmation_time": "2026-07-05T23:25:00Z",
        "impulse_extreme": 4202.225,
        "fib50": 4194.45,
        "fib62": 4192.584,
        "entry_mid": 4193.517,
        "invalid": 4186.675,
        "risk_points": 6.842,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-05T23:30:00Z",
        "target1": 4200.359,
        "target2": 4207.201,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4189.085,
        "D_prior_index": 130,
        "H4_prior_index": 778,
        "H1_prior_index": 2978,
        "pre_local_low": 4170.295,
        "confirmation_time": "2026-07-06T03:05:00Z",
        "impulse_extreme": 4166.28,
        "fib50": 4177.682,
        "fib62": 4180.419,
        "entry_mid": 4179.051,
        "invalid": 4189.085,
        "risk_points": 10.034,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4172.795,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2979,
        "pre_local_high": 4202.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4192.71,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2979,
        "pre_local_low": 4170.295,
        "confirmation_time": "2026-07-06T03:05:00Z",
        "impulse_extreme": 4166.28,
        "fib50": 4179.495,
        "fib62": 4182.667,
        "entry_mid": 4181.081,
        "invalid": 4192.71,
        "risk_points": 11.629,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4192.815,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2979,
        "pre_local_low": 4170.295,
        "confirmation_time": "2026-07-06T03:05:00Z",
        "impulse_extreme": 4166.28,
        "fib50": 4179.547,
        "fib62": 4182.732,
        "entry_mid": 4181.14,
        "invalid": 4192.815,
        "risk_points": 11.675,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T01:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4202.705,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2979,
        "pre_local_low": 4171.125,
        "confirmation_time": "2026-07-06T03:00:00Z",
        "impulse_extreme": 4166.545,
        "fib50": 4184.625,
        "fib62": 4188.964,
        "entry_mid": 4186.795,
        "invalid": 4202.705,
        "risk_points": 15.91,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4175.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4176.53,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2981,
        "pre_local_low": 4166.545,
        "confirmation_time": "2026-07-06T03:15:00Z",
        "impulse_extreme": 4164.885,
        "fib50": 4170.708,
        "fib62": 4172.105,
        "entry_mid": 4171.406,
        "invalid": 4176.53,
        "risk_points": 5.124,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4162.685,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2981,
        "pre_local_high": 4202.705
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4161.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4169.595,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2981,
        "pre_local_low": 4162.685,
        "confirmation_time": "2026-07-06T04:05:00Z",
        "impulse_extreme": 4161.095,
        "fib50": 4165.345,
        "fib62": 4166.365,
        "entry_mid": 4165.855,
        "invalid": 4169.595,
        "risk_points": 3.74,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T07:45:00Z",
        "target1": 4162.115,
        "target2": 4158.375,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4161.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4161.095,
        "D_prior_index": 130,
        "H4_prior_index": 779,
        "H1_prior_index": 2982,
        "pre_local_high": 4186.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4160.375
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4150.67,
        "D_prior_index": 130,
        "H4_prior_index": 780,
        "H1_prior_index": 2983,
        "pre_local_high": 4169.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4149.645,
        "D_prior_index": 130,
        "H4_prior_index": 780,
        "H1_prior_index": 2983,
        "pre_local_high": 4167.055
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4159.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4147.255,
        "D_prior_index": 130,
        "H4_prior_index": 780,
        "H1_prior_index": 2985,
        "pre_local_high": 4160.705,
        "confirmation_time": "2026-07-06T07:40:00Z",
        "impulse_extreme": 4164.48,
        "fib50": 4155.868,
        "fib62": 4153.801,
        "entry_mid": 4154.834,
        "invalid": 4147.255,
        "risk_points": 7.579,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T08:15:00Z",
        "target1": 4162.413,
        "target2": 4169.992,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4155.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T08-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T08:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4147.265,
        "D_prior_index": 130,
        "H4_prior_index": 780,
        "H1_prior_index": 2986,
        "pre_local_high": 4166.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4144.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4155.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4151.54,
        "D_prior_index": 130,
        "H4_prior_index": 781,
        "H1_prior_index": 2989,
        "pre_local_high": 4156.305,
        "confirmation_time": "2026-07-06T11:15:00Z",
        "impulse_extreme": 4158.465,
        "fib50": 4155.003,
        "fib62": 4154.172,
        "entry_mid": 4154.587,
        "invalid": 4151.54,
        "risk_points": 3.047,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T11:25:00Z",
        "target1": 4157.634,
        "target2": 4160.681,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4156.305,
        "D_prior_index": 130,
        "H4_prior_index": 781,
        "H1_prior_index": 2989,
        "pre_local_low": 4136.555,
        "confirmation_time": "2026-07-06T12:40:00Z",
        "impulse_extreme": 4131.52,
        "fib50": 4143.913,
        "fib62": 4146.887,
        "entry_mid": 4145.4,
        "invalid": 4156.305,
        "risk_points": 10.905,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T13:00:00Z",
        "target1": 4134.494,
        "target2": 4123.589,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T11:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4159.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T11-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T11:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4151.915,
        "D_prior_index": 130,
        "H4_prior_index": 781,
        "H1_prior_index": 2989,
        "pre_local_high": 4159.6
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4148.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4148.79
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4132.52,
        "D_prior_index": 130,
        "H4_prior_index": 782,
        "H1_prior_index": 2992,
        "pre_local_high": 4150.625,
        "confirmation_time": "2026-07-06T15:25:00Z",
        "impulse_extreme": 4151.075,
        "fib50": 4141.798,
        "fib62": 4139.571,
        "entry_mid": 4140.684,
        "invalid": 4132.52,
        "risk_points": 8.164,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T16:10:00Z",
        "target1": 4148.848,
        "target2": 4157.013,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4141.885
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4152.185,
        "D_prior_index": 130,
        "H4_prior_index": 782,
        "H1_prior_index": 2993,
        "pre_local_low": 4128.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4144.89
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-06T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4140.295,
        "D_prior_index": 130,
        "H4_prior_index": 782,
        "H1_prior_index": 2994,
        "pre_local_high": 4152.185,
        "confirmation_time": "2026-07-06T16:50:00Z",
        "impulse_extreme": 4155.765,
        "fib50": 4148.03,
        "fib62": 4146.174,
        "entry_mid": 4147.102,
        "invalid": 4140.295,
        "risk_points": 6.807,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4150.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4159.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4155.435
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4161.96,
        "D_prior_index": 130,
        "H4_prior_index": 783,
        "H1_prior_index": 2996,
        "pre_local_low": 4142.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4163.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T19:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4165.53,
        "D_prior_index": 130,
        "H4_prior_index": 783,
        "H1_prior_index": 2997,
        "pre_local_low": 4150.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4158.895,
        "D_prior_index": 130,
        "H4_prior_index": 783,
        "H1_prior_index": 2997,
        "pre_local_high": 4167.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-06T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4160.77,
        "D_prior_index": 130,
        "H4_prior_index": 783,
        "H1_prior_index": 2998,
        "pre_local_high": 4167.59,
        "confirmation_time": "2026-07-06T22:30:00Z",
        "impulse_extreme": 4168.46,
        "fib50": 4164.615,
        "fib62": 4163.692,
        "entry_mid": 4164.154,
        "invalid": 4160.77,
        "risk_points": 3.384,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-06T22:50:00Z",
        "target1": 4167.537,
        "target2": 4170.921,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4164.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4167.48
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4168.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-06T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4163.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-06T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-06T23:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.065,
        "D_prior_index": 131,
        "H4_prior_index": 784,
        "H1_prior_index": 3000,
        "pre_local_high": 4168.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4152.125,
        "D_prior_index": 131,
        "H4_prior_index": 784,
        "H1_prior_index": 3001,
        "pre_local_high": 4168.65
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-07T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4162.75,
        "D_prior_index": 131,
        "H4_prior_index": 784,
        "H1_prior_index": 3001,
        "pre_local_low": 4152.125,
        "confirmation_time": "2026-07-07T00:35:00Z",
        "impulse_extreme": 4150.85,
        "fib50": 4156.8,
        "fib62": 4158.228,
        "entry_mid": 4157.514,
        "invalid": 4162.75,
        "risk_points": 5.236,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4146.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4137.56,
        "D_prior_index": 131,
        "H4_prior_index": 785,
        "H1_prior_index": 3003,
        "pre_local_high": 4162.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T02-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T02:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4145.39
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4136.43
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4140.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T03-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T03:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4127.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T03-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T03:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T05:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.035,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3006,
        "pre_local_high": 4141.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4116.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4128.885,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3006,
        "pre_local_low": 4120.29,
        "confirmation_time": "2026-07-07T05:35:00Z",
        "impulse_extreme": 4119.615,
        "fib50": 4124.25,
        "fib62": 4125.362,
        "entry_mid": 4124.806,
        "invalid": 4128.885,
        "risk_points": 4.079,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T05:50:00Z",
        "target1": 4120.727,
        "target2": 4116.649,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4129.59,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3007,
        "pre_local_low": 4116.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4129.73,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3007,
        "pre_local_low": 4116.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.03,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3007,
        "pre_local_low": 4116.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.465
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4132.31,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3008,
        "pre_local_low": 4116.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4125.875,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3008,
        "pre_local_high": 4133.03,
        "confirmation_time": "2026-07-07T08:10:00Z",
        "impulse_extreme": 4139.395,
        "fib50": 4132.635,
        "fib62": 4131.013,
        "entry_mid": 4131.824,
        "invalid": 4125.875,
        "risk_points": 5.949,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T08:35:00Z",
        "target1": 4137.773,
        "target2": 4143.721,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T07:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.665,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3008,
        "pre_local_low": 4121.675,
        "confirmation_time": "2026-07-07T09:25:00Z",
        "impulse_extreme": 4119.81,
        "fib50": 4126.738,
        "fib62": 4128.4,
        "entry_mid": 4127.569,
        "invalid": 4133.665,
        "risk_points": 6.096,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T09:30:00Z",
        "target1": 4121.473,
        "target2": 4115.376,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T08:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4124.535,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3009,
        "pre_local_high": 4133.665,
        "confirmation_time": "2026-07-07T08:10:00Z",
        "impulse_extreme": 4139.395,
        "fib50": 4131.965,
        "fib62": 4130.182,
        "entry_mid": 4131.073,
        "invalid": 4124.535,
        "risk_points": 6.538,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T08:35:00Z",
        "target1": 4137.612,
        "target2": 4144.15,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T08:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4139.305,
        "D_prior_index": 131,
        "H4_prior_index": 786,
        "H1_prior_index": 3009,
        "pre_local_low": 4124.465,
        "confirmation_time": "2026-07-07T08:50:00Z",
        "impulse_extreme": 4121.94,
        "fib50": 4130.622,
        "fib62": 4132.706,
        "entry_mid": 4131.664,
        "invalid": 4139.305,
        "risk_points": 7.641,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T09:15:00Z",
        "target1": 4124.024,
        "target2": 4116.383,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4131.035,
        "D_prior_index": 131,
        "H4_prior_index": 787,
        "H1_prior_index": 3010,
        "pre_local_low": 4121.94,
        "confirmation_time": "2026-07-07T09:25:00Z",
        "impulse_extreme": 4119.81,
        "fib50": 4125.423,
        "fib62": 4126.77,
        "entry_mid": 4126.096,
        "invalid": 4131.035,
        "risk_points": 4.939,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-07T09:30:00Z",
        "target1": 4121.157,
        "target2": 4116.218,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4135.16,
        "D_prior_index": 131,
        "H4_prior_index": 787,
        "H1_prior_index": 3011,
        "pre_local_low": 4119.81
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T10-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T10:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4175.085,
        "D_prior_index": 131,
        "H4_prior_index": 787,
        "H1_prior_index": 3013,
        "pre_local_low": 4131.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T12-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T12:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4161.695
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4160.2
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-07T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4178.415,
        "D_prior_index": 131,
        "H4_prior_index": 788,
        "H1_prior_index": 3014,
        "pre_local_low": 4139.605,
        "confirmation_time": "2026-07-07T15:50:00Z",
        "impulse_extreme": 4137.715,
        "fib50": 4158.065,
        "fib62": 4162.949,
        "entry_mid": 4160.507,
        "invalid": 4178.415,
        "risk_points": 17.908,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T13-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T13:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4163.66,
        "D_prior_index": 131,
        "H4_prior_index": 788,
        "H1_prior_index": 3014,
        "pre_local_high": 4178.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4143.73
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4141.12,
        "D_prior_index": 131,
        "H4_prior_index": 788,
        "H1_prior_index": 3017,
        "pre_local_high": 4155.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4146.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4147.165
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4140.685,
        "D_prior_index": 131,
        "H4_prior_index": 789,
        "H1_prior_index": 3018,
        "pre_local_high": 4148.455
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-07T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4140.28,
        "D_prior_index": 131,
        "H4_prior_index": 789,
        "H1_prior_index": 3019,
        "pre_local_high": 4148.345
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4136.37
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-07T18:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4142.76,
        "D_prior_index": 131,
        "H4_prior_index": 789,
        "H1_prior_index": 3019,
        "pre_local_low": 4132.125,
        "confirmation_time": "2026-07-07T18:50:00Z",
        "impulse_extreme": 4125.23,
        "fib50": 4133.995,
        "fib62": 4136.099,
        "entry_mid": 4135.047,
        "invalid": 4142.76,
        "risk_points": 7.713,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4092.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4117.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4103.53
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-07T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4100.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4098.695,
        "D_prior_index": 132,
        "H4_prior_index": 790,
        "H1_prior_index": 3022,
        "pre_local_high": 4117.815,
        "confirmation_time": "2026-07-08T00:35:00Z",
        "impulse_extreme": 4123.08,
        "fib50": 4110.887,
        "fib62": 4107.961,
        "entry_mid": 4109.424,
        "invalid": 4098.695,
        "risk_points": 10.729,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T01:00:00Z",
        "target1": 4120.154,
        "target2": 4130.883,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-07T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-07T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4096.065,
        "D_prior_index": 132,
        "H4_prior_index": 790,
        "H1_prior_index": 3023,
        "pre_local_high": 4108.01,
        "confirmation_time": "2026-07-08T00:30:00Z",
        "impulse_extreme": 4109.985,
        "fib50": 4103.025,
        "fib62": 4101.355,
        "entry_mid": 4102.19,
        "invalid": 4096.065,
        "risk_points": 6.125,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T01:05:00Z",
        "target1": 4108.315,
        "target2": 4114.439,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4104.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4096.56
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T02-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T02:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4118.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T03-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T03:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4130.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4131.22,
        "D_prior_index": 132,
        "H4_prior_index": 791,
        "H1_prior_index": 3027,
        "pre_local_low": 4104.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.69,
        "D_prior_index": 132,
        "H4_prior_index": 791,
        "H1_prior_index": 3028,
        "pre_local_high": 4131.22,
        "confirmation_time": "2026-07-08T06:10:00Z",
        "impulse_extreme": 4131.84,
        "fib50": 4126.765,
        "fib62": 4125.547,
        "entry_mid": 4126.156,
        "invalid": 4121.69,
        "risk_points": 4.466,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T06:30:00Z",
        "target1": 4130.622,
        "target2": 4135.088,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4120.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4128.38,
        "D_prior_index": 132,
        "H4_prior_index": 791,
        "H1_prior_index": 3028,
        "pre_local_low": 4113.42
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T05:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4133.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.26,
        "D_prior_index": 132,
        "H4_prior_index": 792,
        "H1_prior_index": 3029,
        "pre_local_high": 4133.99
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T05-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T05:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4122.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-08T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4133.805,
        "D_prior_index": 132,
        "H4_prior_index": 792,
        "H1_prior_index": 3030,
        "pre_local_low": 4121.26,
        "confirmation_time": "2026-07-08T07:00:00Z",
        "impulse_extreme": 4120.755,
        "fib50": 4127.28,
        "fib62": 4128.846,
        "entry_mid": 4128.063,
        "invalid": 4133.805,
        "risk_points": 5.742,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4114.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4050.33,
        "D_prior_index": 132,
        "H4_prior_index": 793,
        "H1_prior_index": 3033,
        "pre_local_high": 4127.27
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4061.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4040.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T10-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T10:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.77,
        "D_prior_index": 132,
        "H4_prior_index": 793,
        "H1_prior_index": 3034,
        "pre_local_low": 4040.575
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4047.825
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4041.55
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4072.845,
        "D_prior_index": 132,
        "H4_prior_index": 793,
        "H1_prior_index": 3035,
        "pre_local_low": 4040.575,
        "confirmation_time": "2026-07-08T14:40:00Z",
        "impulse_extreme": 4035.395,
        "fib50": 4054.12,
        "fib62": 4058.614,
        "entry_mid": 4056.367,
        "invalid": 4072.845,
        "risk_points": 16.478,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T16:40:00Z",
        "target1": 4039.889,
        "target2": 4023.411,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.885,
        "D_prior_index": 132,
        "H4_prior_index": 793,
        "H1_prior_index": 3036,
        "pre_local_high": 4072.845,
        "confirmation_time": "2026-07-08T12:15:00Z",
        "impulse_extreme": 4077.905,
        "fib50": 4068.395,
        "fib62": 4066.113,
        "entry_mid": 4067.254,
        "invalid": 4058.885,
        "risk_points": 8.369,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T12:20:00Z",
        "target1": 4075.623,
        "target2": 4083.991,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4073.72,
        "D_prior_index": 132,
        "H4_prior_index": 793,
        "H1_prior_index": 3036,
        "pre_local_low": 4041.55,
        "confirmation_time": "2026-07-08T14:40:00Z",
        "impulse_extreme": 4035.395,
        "fib50": 4054.557,
        "fib62": 4059.157,
        "entry_mid": 4056.857,
        "invalid": 4073.72,
        "risk_points": 16.863,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T16:40:00Z",
        "target1": 4039.994,
        "target2": 4023.131,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4077.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T12-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T12:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4086.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4069.7,
        "D_prior_index": 132,
        "H4_prior_index": 794,
        "H1_prior_index": 3037,
        "pre_local_high": 4086.445
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T13:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4080.425
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4051.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4033.885,
        "D_prior_index": 132,
        "H4_prior_index": 794,
        "H1_prior_index": 3038,
        "pre_local_high": 4083.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4021.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4076.495,
        "D_prior_index": 132,
        "H4_prior_index": 795,
        "H1_prior_index": 3041,
        "pre_local_low": 4030.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-08T18:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4063.5,
        "D_prior_index": 132,
        "H4_prior_index": 795,
        "H1_prior_index": 3042,
        "pre_local_high": 4076.495,
        "confirmation_time": "2026-07-08T18:40:00Z",
        "impulse_extreme": 4079.625,
        "fib50": 4071.562,
        "fib62": 4069.628,
        "entry_mid": 4070.595,
        "invalid": 4063.5,
        "risk_points": 7.095,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T18:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.06,
        "D_prior_index": 132,
        "H4_prior_index": 795,
        "H1_prior_index": 3042,
        "pre_local_high": 4076.495,
        "confirmation_time": "2026-07-08T18:40:00Z",
        "impulse_extreme": 4079.625,
        "fib50": 4073.342,
        "fib62": 4071.835,
        "entry_mid": 4072.589,
        "invalid": 4067.06,
        "risk_points": 5.529,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-08T20:35:00Z",
        "target1": 4078.117,
        "target2": 4083.646,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-08T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4091.375,
        "D_prior_index": 132,
        "H4_prior_index": 795,
        "H1_prior_index": 3043,
        "pre_local_low": 4063.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T20-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T20:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4076.185
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4074.235
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T20-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T20:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.85
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T22-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 2.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-08T22:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4079.885,
        "D_prior_index": 133,
        "H4_prior_index": 796,
        "H1_prior_index": 3045,
        "pre_local_low": 4071.645,
        "confirmation_time": "2026-07-09T00:50:00Z",
        "impulse_extreme": 4070.38,
        "fib50": 4075.133,
        "fib62": 4076.273,
        "entry_mid": 4075.703,
        "invalid": 4079.885,
        "risk_points": 4.182,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T00:55:00Z",
        "target1": 4071.521,
        "target2": 4067.338,
        "mechanical_outcome": "mechanical_tp2_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T23:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.88
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4077.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T23:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4072.26
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-08T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-08T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4077.735
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T00-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T00:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4073.915
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4090.02,
        "D_prior_index": 133,
        "H4_prior_index": 796,
        "H1_prior_index": 3047,
        "pre_local_low": 4072.26,
        "confirmation_time": "2026-07-09T00:50:00Z",
        "impulse_extreme": 4070.38,
        "fib50": 4080.2,
        "fib62": 4082.557,
        "entry_mid": 4081.378,
        "invalid": 4090.02,
        "risk_points": 8.642,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T02:15:00Z",
        "target1": 4072.737,
        "target2": 4064.095,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4065.17
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T01:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4062.475,
        "D_prior_index": 133,
        "H4_prior_index": 797,
        "H1_prior_index": 3048,
        "pre_local_high": 4090.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T01-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T01:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4076.155,
        "D_prior_index": 133,
        "H4_prior_index": 797,
        "H1_prior_index": 3048,
        "pre_local_low": 4062.475,
        "confirmation_time": "2026-07-09T03:05:00Z",
        "impulse_extreme": 4059.55,
        "fib50": 4067.852,
        "fib62": 4069.845,
        "entry_mid": 4068.849,
        "invalid": 4076.155,
        "risk_points": 7.306,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T05:00:00Z",
        "target1": 4061.543,
        "target2": 4054.236,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-09T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4054.4,
        "D_prior_index": 133,
        "H4_prior_index": 797,
        "H1_prior_index": 3050,
        "pre_local_high": 4082.83,
        "confirmation_time": "2026-07-09T06:00:00Z",
        "impulse_extreme": 4099.8,
        "fib50": 4077.1,
        "fib62": 4071.652,
        "entry_mid": 4074.376,
        "invalid": 4054.4,
        "risk_points": 19.976,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4064.705,
        "D_prior_index": 133,
        "H4_prior_index": 797,
        "H1_prior_index": 3051,
        "pre_local_low": 4054.4
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4057.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T04-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T04:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4056.49
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T04-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T04:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4064.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-09T04:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4056.455,
        "D_prior_index": 133,
        "H4_prior_index": 797,
        "H1_prior_index": 3051,
        "pre_local_high": 4067.34,
        "confirmation_time": "2026-07-09T05:05:00Z",
        "impulse_extreme": 4069.275,
        "fib50": 4062.865,
        "fib62": 4061.327,
        "entry_mid": 4062.096,
        "invalid": 4056.455,
        "risk_points": 5.641,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-09T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4064.87,
        "D_prior_index": 133,
        "H4_prior_index": 798,
        "H1_prior_index": 3052,
        "pre_local_high": 4075.98,
        "confirmation_time": "2026-07-09T05:35:00Z",
        "impulse_extreme": 4077.36,
        "fib50": 4071.115,
        "fib62": 4069.616,
        "entry_mid": 4070.366,
        "invalid": 4064.87,
        "risk_points": 5.496,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4107.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4110.35,
        "D_prior_index": 133,
        "H4_prior_index": 798,
        "H1_prior_index": 3054,
        "pre_local_low": 4064.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4110.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T07-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T07:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4111.24,
        "D_prior_index": 133,
        "H4_prior_index": 798,
        "H1_prior_index": 3054,
        "pre_local_low": 4088.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4105.945,
        "D_prior_index": 133,
        "H4_prior_index": 799,
        "H1_prior_index": 3056,
        "pre_local_high": 4118.005
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4112.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T09-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T09:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4103.09,
        "D_prior_index": 133,
        "H4_prior_index": 799,
        "H1_prior_index": 3056,
        "pre_local_high": 4118.005,
        "confirmation_time": "2026-07-09T12:35:00Z",
        "impulse_extreme": 4121.595,
        "fib50": 4112.343,
        "fib62": 4110.122,
        "entry_mid": 4111.232,
        "invalid": 4103.09,
        "risk_points": 8.142,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T12:45:00Z",
        "target1": 4119.374,
        "target2": 4127.517,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T10-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T10:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4110.22
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4104.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4107.315,
        "D_prior_index": 133,
        "H4_prior_index": 799,
        "H1_prior_index": 3058,
        "pre_local_low": 4093.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4098.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T11:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4109.56,
        "D_prior_index": 133,
        "H4_prior_index": 799,
        "H1_prior_index": 3058,
        "pre_local_low": 4093.855
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4110.59
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4105.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T12:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4122.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T13:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4106.875,
        "D_prior_index": 133,
        "H4_prior_index": 800,
        "H1_prior_index": 3060,
        "pre_local_high": 4122.63,
        "confirmation_time": "2026-07-09T13:20:00Z",
        "impulse_extreme": 4125.455,
        "fib50": 4116.165,
        "fib62": 4113.935,
        "entry_mid": 4115.05,
        "invalid": 4106.875,
        "risk_points": 8.175,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T14:15:00Z",
        "target1": 4123.225,
        "target2": 4131.401,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4117.9,
        "D_prior_index": 133,
        "H4_prior_index": 800,
        "H1_prior_index": 3060,
        "pre_local_high": 4129.59,
        "confirmation_time": "2026-07-09T14:00:00Z",
        "impulse_extreme": 4134.88,
        "fib50": 4126.39,
        "fib62": 4124.352,
        "entry_mid": 4125.371,
        "invalid": 4117.9,
        "risk_points": 7.471,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T14:05:00Z",
        "target1": 4132.842,
        "target2": 4140.314,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4136.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4114.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4126.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4118.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4130.995,
        "D_prior_index": 133,
        "H4_prior_index": 800,
        "H1_prior_index": 3062,
        "pre_local_low": 4114.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4131.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4132.84,
        "D_prior_index": 133,
        "H4_prior_index": 800,
        "H1_prior_index": 3062,
        "pre_local_low": 4114.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T16-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T16:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4125.785
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T17:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4125.095,
        "D_prior_index": 133,
        "H4_prior_index": 801,
        "H1_prior_index": 3064,
        "pre_local_high": 4138.035
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T18-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T18:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.53,
        "D_prior_index": 133,
        "H4_prior_index": 801,
        "H1_prior_index": 3065,
        "pre_local_high": 4138.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T18-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T18:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4125.6,
        "D_prior_index": 133,
        "H4_prior_index": 801,
        "H1_prior_index": 3065,
        "pre_local_low": 4121.53,
        "confirmation_time": "2026-07-09T19:25:00Z",
        "impulse_extreme": 4120.795,
        "fib50": 4123.198,
        "fib62": 4123.774,
        "entry_mid": 4123.486,
        "invalid": 4125.6,
        "risk_points": 2.114,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T19:50:00Z",
        "target1": 4121.372,
        "target2": 4119.257,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4127.06,
        "D_prior_index": 133,
        "H4_prior_index": 801,
        "H1_prior_index": 3066,
        "pre_local_low": 4121.53,
        "confirmation_time": "2026-07-09T19:25:00Z",
        "impulse_extreme": 4120.795,
        "fib50": 4123.927,
        "fib62": 4124.679,
        "entry_mid": 4124.303,
        "invalid": 4127.06,
        "risk_points": 2.757,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-09T20:00:00Z",
        "target1": 4121.547,
        "target2": 4118.79,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T19-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T19:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4123.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T20:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4124.24,
        "D_prior_index": 133,
        "H4_prior_index": 801,
        "H1_prior_index": 3067,
        "pre_local_low": 4118.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4120.7
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4122.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4127.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4122.43,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3068,
        "pre_local_high": 4127.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.35,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3069,
        "pre_local_high": 4127.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-09T23:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-09T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4125.24,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3069,
        "pre_local_low": 4121.35,
        "confirmation_time": "2026-07-10T00:15:00Z",
        "impulse_extreme": 4120.865,
        "fib50": 4123.052,
        "fib62": 4123.577,
        "entry_mid": 4123.315,
        "invalid": 4125.24,
        "risk_points": 1.925,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T00:40:00Z",
        "target1": 4121.39,
        "target2": 4119.465,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-09T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-09T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.065,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3069,
        "pre_local_high": 4127.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4119.88,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3070,
        "pre_local_high": 4125.835,
        "confirmation_time": "2026-07-10T00:55:00Z",
        "impulse_extreme": 4128.47,
        "fib50": 4124.175,
        "fib62": 4123.144,
        "entry_mid": 4123.66,
        "invalid": 4119.88,
        "risk_points": 3.78,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T01:00:00Z",
        "target1": 4127.439,
        "target2": 4131.219,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4125.835,
        "D_prior_index": 134,
        "H4_prior_index": 802,
        "H1_prior_index": 3070,
        "pre_local_low": 4119.88,
        "confirmation_time": "2026-07-10T00:20:00Z",
        "impulse_extreme": 4119.225,
        "fib50": 4122.53,
        "fib62": 4123.323,
        "entry_mid": 4122.927,
        "invalid": 4125.835,
        "risk_points": 2.908,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T00:40:00Z",
        "target1": 4120.018,
        "target2": 4117.11,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T00:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4114.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4124.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4119.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4131.26,
        "D_prior_index": 134,
        "H4_prior_index": 803,
        "H1_prior_index": 3071,
        "pre_local_low": 4114.545,
        "confirmation_time": "2026-07-10T01:35:00Z",
        "impulse_extreme": 4109.075,
        "fib50": 4120.167,
        "fib62": 4122.83,
        "entry_mid": 4121.499,
        "invalid": 4131.26,
        "risk_points": 9.761,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T01:55:00Z",
        "target1": 4111.737,
        "target2": 4101.976,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T01:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.72,
        "D_prior_index": 134,
        "H4_prior_index": 803,
        "H1_prior_index": 3071,
        "pre_local_high": 4131.26,
        "confirmation_time": "2026-07-10T03:05:00Z",
        "impulse_extreme": 4134.92,
        "fib50": 4121.82,
        "fib62": 4118.676,
        "entry_mid": 4120.248,
        "invalid": 4108.72,
        "risk_points": 11.528,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T03:20:00Z",
        "target1": 4131.776,
        "target2": 4143.304,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4128.685,
        "D_prior_index": 134,
        "H4_prior_index": 803,
        "H1_prior_index": 3072,
        "pre_local_low": 4108.72
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4129.105
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4134.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4116.865,
        "D_prior_index": 134,
        "H4_prior_index": 803,
        "H1_prior_index": 3074,
        "pre_local_high": 4134.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4112.265
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T04-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T04:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4121.285,
        "D_prior_index": 134,
        "H4_prior_index": 803,
        "H1_prior_index": 3074,
        "pre_local_low": 4116.865,
        "confirmation_time": "2026-07-10T04:20:00Z",
        "impulse_extreme": 4112.265,
        "fib50": 4116.775,
        "fib62": 4117.857,
        "entry_mid": 4117.316,
        "invalid": 4121.285,
        "risk_points": 3.969,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T04:25:00Z",
        "target1": 4113.347,
        "target2": 4109.379,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4117.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4109.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.39,
        "D_prior_index": 134,
        "H4_prior_index": 804,
        "H1_prior_index": 3075,
        "pre_local_high": 4121.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4119.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T06-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T06:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4120.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.98,
        "D_prior_index": 134,
        "H4_prior_index": 804,
        "H1_prior_index": 3077,
        "pre_local_high": 4120.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T07-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T07:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.8,
        "D_prior_index": 134,
        "H4_prior_index": 804,
        "H1_prior_index": 3077,
        "pre_local_high": 4120.19
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4115.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T07:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4104.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T08-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T08:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4104.085
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T08:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4103.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T09:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4094.535,
        "D_prior_index": 134,
        "H4_prior_index": 805,
        "H1_prior_index": 3079,
        "pre_local_high": 4115.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4098.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T09-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T09:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4104.15
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4106.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4104.485,
        "D_prior_index": 134,
        "H4_prior_index": 805,
        "H1_prior_index": 3081,
        "pre_local_high": 4112.815,
        "confirmation_time": "2026-07-10T12:10:00Z",
        "impulse_extreme": 4117.585,
        "fib50": 4111.035,
        "fib62": 4109.463,
        "entry_mid": 4110.249,
        "invalid": 4104.485,
        "risk_points": 5.764,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T12:15:00Z",
        "target1": 4116.013,
        "target2": 4121.777,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T11-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T11:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4108.205
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T11-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T11:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4096.155
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T11:45:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4108.045,
        "D_prior_index": 134,
        "H4_prior_index": 805,
        "H1_prior_index": 3081,
        "pre_local_low": 4096.155,
        "confirmation_time": "2026-07-10T13:25:00Z",
        "impulse_extreme": 4085.855,
        "fib50": 4096.95,
        "fib62": 4099.613,
        "entry_mid": 4098.281,
        "invalid": 4108.045,
        "risk_points": 9.764,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T13:30:00Z",
        "target1": 4088.518,
        "target2": 4078.754,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4101.11,
        "D_prior_index": 134,
        "H4_prior_index": 805,
        "H1_prior_index": 3082,
        "pre_local_high": 4112.815,
        "confirmation_time": "2026-07-10T12:10:00Z",
        "impulse_extreme": 4117.585,
        "fib50": 4109.347,
        "fib62": 4107.37,
        "entry_mid": 4108.359,
        "invalid": 4101.11,
        "risk_points": 7.249,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T12:15:00Z",
        "target1": 4115.608,
        "target2": 4122.857,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4106.42,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3083,
        "pre_local_low": 4096.155,
        "confirmation_time": "2026-07-10T13:25:00Z",
        "impulse_extreme": 4085.855,
        "fib50": 4096.137,
        "fib62": 4098.605,
        "entry_mid": 4097.371,
        "invalid": 4106.42,
        "risk_points": 9.049,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T13:30:00Z",
        "target1": 4088.323,
        "target2": 4079.274,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T13:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4106.765,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3083,
        "pre_local_low": 4096.155,
        "confirmation_time": "2026-07-10T13:25:00Z",
        "impulse_extreme": 4085.855,
        "fib50": 4096.31,
        "fib62": 4098.819,
        "entry_mid": 4097.565,
        "invalid": 4106.765,
        "risk_points": 9.2,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T13:30:00Z",
        "target1": 4088.364,
        "target2": 4079.164,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4105.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4097.63,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3084,
        "pre_local_high": 4106.765,
        "confirmation_time": "2026-07-10T14:45:00Z",
        "impulse_extreme": 4107.61,
        "fib50": 4102.62,
        "fib62": 4101.422,
        "entry_mid": 4102.021,
        "invalid": 4097.63,
        "risk_points": 4.391,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T14:50:00Z",
        "target1": 4106.412,
        "target2": 4110.804,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T14:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4072.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4091.46,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3085,
        "pre_local_high": 4109.145,
        "confirmation_time": "2026-07-10T15:45:00Z",
        "impulse_extreme": 4110.755,
        "fib50": 4101.108,
        "fib62": 4098.792,
        "entry_mid": 4099.95,
        "invalid": 4091.46,
        "risk_points": 8.49,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T17:55:00Z",
        "target1": 4108.44,
        "target2": 4116.929,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4114.965,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3086,
        "pre_local_low": 4072.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T16-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T16:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4107.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T16-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-10T16:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4115.51,
        "D_prior_index": 134,
        "H4_prior_index": 806,
        "H1_prior_index": 3086,
        "pre_local_low": 4091.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4103.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-10T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4107.035,
        "D_prior_index": 134,
        "H4_prior_index": 807,
        "H1_prior_index": 3087,
        "pre_local_low": 4102.47,
        "confirmation_time": "2026-07-10T17:55:00Z",
        "impulse_extreme": 4100.58,
        "fib50": 4103.807,
        "fib62": 4104.582,
        "entry_mid": 4104.195,
        "invalid": 4107.035,
        "risk_points": 2.84,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-10T18:10:00Z",
        "target1": 4101.355,
        "target2": 4098.514,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-10T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4100.075,
        "D_prior_index": 134,
        "H4_prior_index": 807,
        "H1_prior_index": 3088,
        "pre_local_high": 4115.51,
        "confirmation_time": "2026-07-10T20:50:00Z",
        "impulse_extreme": 4120.145,
        "fib50": 4110.11,
        "fib62": 4107.702,
        "entry_mid": 4108.906,
        "invalid": 4100.075,
        "risk_points": 8.831,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4105.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T18-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-10T18:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4098.21,
        "D_prior_index": 134,
        "H4_prior_index": 807,
        "H1_prior_index": 3088,
        "pre_local_high": 4107.035,
        "confirmation_time": "2026-07-10T19:55:00Z",
        "impulse_extreme": 4109.155,
        "fib50": 4103.682,
        "fib62": 4102.369,
        "entry_mid": 4103.026,
        "invalid": 4098.21,
        "risk_points": 4.816,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4097.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4102.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T19-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T19:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4103.5
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4100.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-10T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4103.765
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-10T20-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-10T20:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4110.515,
        "D_prior_index": 134,
        "H4_prior_index": 807,
        "H1_prior_index": 3090,
        "pre_local_high": 4115.19,
        "confirmation_time": "2026-07-10T20:50:00Z",
        "impulse_extreme": 4120.145,
        "fib50": 4115.33,
        "fib62": 4114.174,
        "entry_mid": 4114.752,
        "invalid": 4110.515,
        "risk_points": 4.237,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-12T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-12T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4079.975
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-12T23-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-12T23:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4068.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-13T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4077.695,
        "D_prior_index": 135,
        "H4_prior_index": 808,
        "H1_prior_index": 3093,
        "pre_local_low": 4061.115,
        "confirmation_time": "2026-07-13T03:10:00Z",
        "impulse_extreme": 4053.27,
        "fib50": 4065.483,
        "fib62": 4068.414,
        "entry_mid": 4066.948,
        "invalid": 4077.695,
        "risk_points": 10.747,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-13T05:05:00Z",
        "target1": 4056.201,
        "target2": 4045.454,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4065.74
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-13T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4082.16,
        "D_prior_index": 135,
        "H4_prior_index": 809,
        "H1_prior_index": 3094,
        "pre_local_low": 4061.115,
        "confirmation_time": "2026-07-13T03:10:00Z",
        "impulse_extreme": 4053.27,
        "fib50": 4067.715,
        "fib62": 4071.182,
        "entry_mid": 4069.448,
        "invalid": 4082.16,
        "risk_points": 12.712,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-13T05:05:00Z",
        "target1": 4056.737,
        "target2": 4044.025,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T02-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T02:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4064.695,
        "D_prior_index": 135,
        "H4_prior_index": 809,
        "H1_prior_index": 3095,
        "pre_local_high": 4089.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T02:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4077.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4050.465,
        "D_prior_index": 135,
        "H4_prior_index": 809,
        "H1_prior_index": 3097,
        "pre_local_high": 4077.405
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T04-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-13T04:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4052.69,
        "D_prior_index": 135,
        "H4_prior_index": 809,
        "H1_prior_index": 3097,
        "pre_local_high": 4065.16,
        "confirmation_time": "2026-07-13T05:05:00Z",
        "impulse_extreme": 4071.64,
        "fib50": 4062.165,
        "fib62": 4059.891,
        "entry_mid": 4061.028,
        "invalid": 4052.69,
        "risk_points": 8.338,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-13T05:20:00Z",
        "target1": 4069.366,
        "target2": 4077.704,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T05:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4052.17,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3098,
        "pre_local_high": 4073.27,
        "confirmation_time": "2026-07-13T08:10:00Z",
        "impulse_extreme": 4075.12,
        "fib50": 4063.645,
        "fib62": 4060.891,
        "entry_mid": 4062.268,
        "invalid": 4052.17,
        "risk_points": 10.098,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T06-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T06:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4063.72,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3099,
        "pre_local_low": 4044.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4049.045,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3100,
        "pre_local_high": 4066.305,
        "confirmation_time": "2026-07-13T08:05:00Z",
        "impulse_extreme": 4071.56,
        "fib50": 4060.302,
        "fib62": 4057.601,
        "entry_mid": 4058.952,
        "invalid": 4049.045,
        "risk_points": 9.907,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4061.28,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3100,
        "pre_local_low": 4044.06
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4062.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T07-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T07:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4056.2,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3100,
        "pre_local_high": 4063.72,
        "confirmation_time": "2026-07-13T07:55:00Z",
        "impulse_extreme": 4065.225,
        "fib50": 4060.712,
        "fib62": 4059.63,
        "entry_mid": 4060.171,
        "invalid": 4056.2,
        "risk_points": 3.971,
        "invalid_before_fib_touch": true
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T08:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4080.845,
        "D_prior_index": 135,
        "H4_prior_index": 810,
        "H1_prior_index": 3101,
        "pre_local_low": 4049.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T08-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T08:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4071.82
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4078.595
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4076.715
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4069.515,
        "D_prior_index": 135,
        "H4_prior_index": 811,
        "H1_prior_index": 3102,
        "pre_local_high": 4080.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T12:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4053.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T12-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T12:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4063.665,
        "D_prior_index": 135,
        "H4_prior_index": 811,
        "H1_prior_index": 3105,
        "pre_local_low": 4046.43,
        "confirmation_time": "2026-07-13T13:55:00Z",
        "impulse_extreme": 4042.005,
        "fib50": 4052.835,
        "fib62": 4055.434,
        "entry_mid": 4054.135,
        "invalid": 4063.665,
        "risk_points": 9.53,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T12-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T12:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4064.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4067.8,
        "D_prior_index": 135,
        "H4_prior_index": 812,
        "H1_prior_index": 3106,
        "pre_local_low": 4053.62,
        "confirmation_time": "2026-07-13T13:45:00Z",
        "impulse_extreme": 4049.86,
        "fib50": 4058.83,
        "fib62": 4060.983,
        "entry_mid": 4059.906,
        "invalid": 4067.8,
        "risk_points": 7.894,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T13-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T13:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.705,
        "D_prior_index": 135,
        "H4_prior_index": 812,
        "H1_prior_index": 3106,
        "pre_local_high": 4068.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T14-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T14:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4000.23
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-13T15:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4017.775,
        "D_prior_index": 135,
        "H4_prior_index": 812,
        "H1_prior_index": 3108,
        "pre_local_low": 4000.23,
        "confirmation_time": "2026-07-13T16:30:00Z",
        "impulse_extreme": 3992.11,
        "fib50": 4004.943,
        "fib62": 4008.022,
        "entry_mid": 4006.482,
        "invalid": 4017.775,
        "risk_points": 11.293,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-13T18:50:00Z",
        "target1": 3995.19,
        "target2": 3983.897,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T15-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T15:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4020.355
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T15-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T15:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4012.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T15-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T15:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4010.37,
        "D_prior_index": 135,
        "H4_prior_index": 812,
        "H1_prior_index": 3108,
        "pre_local_high": 4040.97
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T16-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-13T16:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4018.115,
        "D_prior_index": 135,
        "H4_prior_index": 812,
        "H1_prior_index": 3109,
        "pre_local_low": 4000.23,
        "confirmation_time": "2026-07-13T16:30:00Z",
        "impulse_extreme": 3992.11,
        "fib50": 4005.113,
        "fib62": 4008.233,
        "entry_mid": 4006.673,
        "invalid": 4018.115,
        "risk_points": 11.442,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-13T18:50:00Z",
        "target1": 3995.231,
        "target2": 3983.788,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3990.91
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3986.58
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T17-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T17:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4002.025
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T17-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T17:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3996.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T18-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T18:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3990.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T18-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T18:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3986.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T19-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T19:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3996.925,
        "D_prior_index": 135,
        "H4_prior_index": 813,
        "H1_prior_index": 3112,
        "pre_local_high": 4005.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3993.62,
        "D_prior_index": 135,
        "H4_prior_index": 813,
        "H1_prior_index": 3112,
        "pre_local_high": 4005.215
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T19-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T19:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4001.085,
        "D_prior_index": 135,
        "H4_prior_index": 813,
        "H1_prior_index": 3112,
        "pre_local_low": 3986.92
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T20-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T20:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4006.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3996.59,
        "D_prior_index": 135,
        "H4_prior_index": 813,
        "H1_prior_index": 3113,
        "pre_local_high": 4006.245
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-13T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4000.585,
        "D_prior_index": 135,
        "H4_prior_index": 813,
        "H1_prior_index": 3113,
        "pre_local_low": 3993.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T22-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-13T22:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4005.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-13T23-45-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-13T23:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3992.855,
        "D_prior_index": 136,
        "H4_prior_index": 814,
        "H1_prior_index": 3115,
        "pre_local_high": 4005.925,
        "confirmation_time": "2026-07-14T01:55:00Z",
        "impulse_extreme": 4012.385,
        "fib50": 4002.62,
        "fib62": 4000.276,
        "entry_mid": 4001.448,
        "invalid": 3992.855,
        "risk_points": 8.593,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T00:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3983.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T00:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4004.93,
        "D_prior_index": 136,
        "H4_prior_index": 814,
        "H1_prior_index": 3116,
        "pre_local_low": 3992.855,
        "confirmation_time": "2026-07-14T00:15:00Z",
        "impulse_extreme": 3987.64,
        "fib50": 3996.285,
        "fib62": 3998.36,
        "entry_mid": 3997.322,
        "invalid": 4004.93,
        "risk_points": 7.608,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-14T00:25:00Z",
        "target1": 3989.715,
        "target2": 3982.107,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T00-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T00:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4007.41,
        "D_prior_index": 136,
        "H4_prior_index": 814,
        "H1_prior_index": 3116,
        "pre_local_low": 3983.545
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T01-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T01:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4005.02
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T01-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T01:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3992.83
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T02-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T02:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4009.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4011.09
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4019.25,
        "D_prior_index": 136,
        "H4_prior_index": 815,
        "H1_prior_index": 3119,
        "pre_local_low": 4000.11
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4013.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4018.935,
        "D_prior_index": 136,
        "H4_prior_index": 815,
        "H1_prior_index": 3120,
        "pre_local_low": 4009.16
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T05-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T05:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4024.12,
        "D_prior_index": 136,
        "H4_prior_index": 816,
        "H1_prior_index": 3121,
        "pre_local_low": 4013.57
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T06:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.75
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T06:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4033.35
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T06-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T06:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4021.75,
        "D_prior_index": 136,
        "H4_prior_index": 816,
        "H1_prior_index": 3122,
        "pre_local_high": 4034.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4026.975,
        "D_prior_index": 136,
        "H4_prior_index": 816,
        "H1_prior_index": 3122,
        "pre_local_low": 4019.635,
        "confirmation_time": "2026-07-14T08:00:00Z",
        "impulse_extreme": 4017.175,
        "fib50": 4022.075,
        "fib62": 4023.251,
        "entry_mid": 4022.663,
        "invalid": 4026.975,
        "risk_points": 4.312,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-14T08:25:00Z",
        "target1": 4018.351,
        "target2": 4014.039,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T07-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T07:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4020.83,
        "D_prior_index": 136,
        "H4_prior_index": 816,
        "H1_prior_index": 3123,
        "pre_local_high": 4034.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4029.095
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T07-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T07:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4029.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T08-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T08:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4023.285
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4024.03,
        "D_prior_index": 136,
        "H4_prior_index": 816,
        "H1_prior_index": 3124,
        "pre_local_low": 4014.515,
        "confirmation_time": "2026-07-14T09:30:00Z",
        "impulse_extreme": 4014.01,
        "fib50": 4019.02,
        "fib62": 4020.222,
        "entry_mid": 4019.621,
        "invalid": 4024.03,
        "risk_points": 4.409,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-14T09:45:00Z",
        "target1": 4015.212,
        "target2": 4010.804,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T09-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-14T09:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4013.925,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3125,
        "pre_local_high": 4029.965,
        "confirmation_time": "2026-07-14T11:55:00Z",
        "impulse_extreme": 4031.915,
        "fib50": 4022.92,
        "fib62": 4020.761,
        "entry_mid": 4021.841,
        "invalid": 4013.925,
        "risk_points": 7.916,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T09:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4024.6,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3125,
        "pre_local_low": 4013.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4013.965
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T10:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4015.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-14T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4015.175,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3126,
        "pre_local_high": 4024.6,
        "confirmation_time": "2026-07-14T11:20:00Z",
        "impulse_extreme": 4028.175,
        "fib50": 4021.675,
        "fib62": 4020.115,
        "entry_mid": 4020.895,
        "invalid": 4015.175,
        "risk_points": 5.72,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T10-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T10:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4020.325,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3126,
        "pre_local_low": 4013.925
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T11-00-00Z_long_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-14T11:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4015.485,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3127,
        "pre_local_high": 4023.98,
        "confirmation_time": "2026-07-14T11:20:00Z",
        "impulse_extreme": 4028.175,
        "fib50": 4021.83,
        "fib62": 4020.307,
        "entry_mid": 4021.069,
        "invalid": 4015.485,
        "risk_points": 5.584,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T11-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T11:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4030.43,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3127,
        "pre_local_low": 4015.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T12-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T12:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.295
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4035.99,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3128,
        "pre_local_low": 4015.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T12-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 0.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T12:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4023.33,
        "D_prior_index": 136,
        "H4_prior_index": 817,
        "H1_prior_index": 3128,
        "pre_local_high": 4035.99,
        "confirmation_time": "2026-07-14T12:30:00Z",
        "impulse_extreme": 4104.05,
        "fib50": 4063.69,
        "fib62": 4054.004,
        "entry_mid": 4058.847,
        "invalid": 4023.33,
        "risk_points": 35.517,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-14T16:00:00Z",
        "target1": 4094.364,
        "target2": 4129.88,
        "mechanical_outcome": "unresolved_mechanical"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T13-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T13:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4086.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4074.325,
        "D_prior_index": 136,
        "H4_prior_index": 818,
        "H1_prior_index": 3129,
        "pre_local_high": 4104.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T14-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T14:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4072.67
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T14-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T14:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4070.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4085.33
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T14-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T14:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4090.655
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T16-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T16:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4057.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T16-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T16:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4057.81,
        "D_prior_index": 136,
        "H4_prior_index": 818,
        "H1_prior_index": 3132,
        "pre_local_high": 4100.685
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4064.81,
        "D_prior_index": 136,
        "H4_prior_index": 819,
        "H1_prior_index": 3133,
        "pre_local_low": 4057.81,
        "confirmation_time": "2026-07-14T17:10:00Z",
        "impulse_extreme": 4055.48,
        "fib50": 4060.145,
        "fib62": 4061.265,
        "entry_mid": 4060.705,
        "invalid": 4064.81,
        "risk_points": 4.105,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-14T17:20:00Z",
        "target1": 4056.6,
        "target2": 4052.494,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4054.57,
        "D_prior_index": 136,
        "H4_prior_index": 819,
        "H1_prior_index": 3133,
        "pre_local_high": 4082.68
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T17-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-14T17:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4065.17,
        "D_prior_index": 136,
        "H4_prior_index": 819,
        "H1_prior_index": 3133,
        "pre_local_low": 4054.57,
        "confirmation_time": "2026-07-14T18:35:00Z",
        "impulse_extreme": 4052.245,
        "fib50": 4058.707,
        "fib62": 4060.258,
        "entry_mid": 4059.483,
        "invalid": 4065.17,
        "risk_points": 5.687,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T17-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T17:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.445,
        "D_prior_index": 136,
        "H4_prior_index": 819,
        "H1_prior_index": 3133,
        "pre_local_high": 4065.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4063.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T19-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T19:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4047.835
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-14T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4049.31,
        "D_prior_index": 136,
        "H4_prior_index": 819,
        "H1_prior_index": 3136,
        "pre_local_high": 4057.395
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T22-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T22:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4049.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4053.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T22-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T22:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4049.065
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T22-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-14T22:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4052.845
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-14T23-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-14T23:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4046.925,
        "D_prior_index": 137,
        "H4_prior_index": 820,
        "H1_prior_index": 3138,
        "pre_local_high": 4053.24,
        "confirmation_time": "2026-07-14T23:25:00Z",
        "impulse_extreme": 4054.125,
        "fib50": 4050.525,
        "fib62": 4049.661,
        "entry_mid": 4050.093,
        "invalid": 4046.925,
        "risk_points": 3.168,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T01:30:00Z",
        "target1": 4053.261,
        "target2": 4056.429,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4056.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-15T00:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.56,
        "D_prior_index": 137,
        "H4_prior_index": 820,
        "H1_prior_index": 3139,
        "pre_local_low": 4046.925,
        "confirmation_time": "2026-07-15T01:35:00Z",
        "impulse_extreme": 4045.6,
        "fib50": 4052.08,
        "fib62": 4053.635,
        "entry_mid": 4052.858,
        "invalid": 4058.56,
        "risk_points": 5.702,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T01-00-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-15T01:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4062.125,
        "D_prior_index": 137,
        "H4_prior_index": 821,
        "H1_prior_index": 3140,
        "pre_local_low": 4048.155,
        "confirmation_time": "2026-07-15T01:35:00Z",
        "impulse_extreme": 4045.6,
        "fib50": 4053.863,
        "fib62": 4055.845,
        "entry_mid": 4054.854,
        "invalid": 4062.125,
        "risk_points": 7.271,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T01-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T01:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4035.54
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T02-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T02:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.2,
        "D_prior_index": 137,
        "H4_prior_index": 821,
        "H1_prior_index": 3141,
        "pre_local_high": 4062.125
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T02-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T02:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4041.965,
        "D_prior_index": 137,
        "H4_prior_index": 821,
        "H1_prior_index": 3141,
        "pre_local_low": 4029.38,
        "confirmation_time": "2026-07-15T05:10:00Z",
        "impulse_extreme": 4025.105,
        "fib50": 4033.535,
        "fib62": 4035.558,
        "entry_mid": 4034.547,
        "invalid": 4041.965,
        "risk_points": 7.418,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T05:40:00Z",
        "target1": 4027.128,
        "target2": 4019.71,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T03-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T03:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4035.84
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T05-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T05:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4036.28,
        "D_prior_index": 137,
        "H4_prior_index": 822,
        "H1_prior_index": 3144,
        "pre_local_low": 4028.1,
        "confirmation_time": "2026-07-15T05:10:00Z",
        "impulse_extreme": 4025.105,
        "fib50": 4030.693,
        "fib62": 4032.034,
        "entry_mid": 4031.363,
        "invalid": 4036.28,
        "risk_points": 4.917,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T05:35:00Z",
        "target1": 4026.446,
        "target2": 4021.529,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T05-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T05:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4024.865
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4022.245,
        "D_prior_index": 137,
        "H4_prior_index": 822,
        "H1_prior_index": 3144,
        "pre_local_high": 4036.28
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T06-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T06:00:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4027.255
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4035.63,
        "D_prior_index": 137,
        "H4_prior_index": 822,
        "H1_prior_index": 3145,
        "pre_local_low": 4022.245,
        "confirmation_time": "2026-07-15T07:35:00Z",
        "impulse_extreme": 4019.815,
        "fib50": 4027.722,
        "fib62": 4029.62,
        "entry_mid": 4028.671,
        "invalid": 4035.63,
        "risk_points": 6.959,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T08:30:00Z",
        "target1": 4021.713,
        "target2": 4014.754,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4033.9
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T07-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T07:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.485,
        "D_prior_index": 137,
        "H4_prior_index": 822,
        "H1_prior_index": 3146,
        "pre_local_low": 4021.465,
        "confirmation_time": "2026-07-15T07:35:00Z",
        "impulse_extreme": 4019.815,
        "fib50": 4027.15,
        "fib62": 4028.91,
        "entry_mid": 4028.03,
        "invalid": 4034.485,
        "risk_points": 6.455,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T08:30:00Z",
        "target1": 4021.575,
        "target2": 4015.121,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4019.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T09-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T09:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4034.475
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T10-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T10:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4026.61
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T11-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T11:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4033.08,
        "D_prior_index": 137,
        "H4_prior_index": 823,
        "H1_prior_index": 3150,
        "pre_local_low": 4025.605
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T11-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T11:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4027.77
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T11-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T11:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4040.25
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T12:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4042.725
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T13-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T13:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4074.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T13-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T13:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4054.995
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T13-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T13:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4066.44
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T14-15-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T14:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4066.07,
        "D_prior_index": 137,
        "H4_prior_index": 824,
        "H1_prior_index": 3153,
        "pre_local_low": 4053.79,
        "confirmation_time": "2026-07-15T15:10:00Z",
        "impulse_extreme": 4043.34,
        "fib50": 4054.705,
        "fib62": 4057.433,
        "entry_mid": 4056.069,
        "invalid": 4066.07,
        "risk_points": 10.001,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T17:30:00Z",
        "target1": 4046.068,
        "target2": 4036.066,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4053.325,
        "D_prior_index": 137,
        "H4_prior_index": 824,
        "H1_prior_index": 3153,
        "pre_local_high": 4074.175
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T15-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T15:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4063.01,
        "D_prior_index": 137,
        "H4_prior_index": 824,
        "H1_prior_index": 3154,
        "pre_local_low": 4053.325,
        "confirmation_time": "2026-07-15T15:10:00Z",
        "impulse_extreme": 4043.34,
        "fib50": 4053.175,
        "fib62": 4055.535,
        "entry_mid": 4054.355,
        "invalid": 4063.01,
        "risk_points": 8.655,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T17:30:00Z",
        "target1": 4045.7,
        "target2": 4037.046,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T15-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T15:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4039.655,
        "D_prior_index": 137,
        "H4_prior_index": 824,
        "H1_prior_index": 3154,
        "pre_local_high": 4066.44,
        "confirmation_time": "2026-07-15T18:00:00Z",
        "impulse_extreme": 4068.875,
        "fib50": 4054.265,
        "fib62": 4050.759,
        "entry_mid": 4052.512,
        "invalid": 4039.655,
        "risk_points": 12.857,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T19:20:00Z",
        "target1": 4065.369,
        "target2": 4078.225,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T15-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T15:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4050.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T15-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T15:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4050.99,
        "D_prior_index": 137,
        "H4_prior_index": 824,
        "H1_prior_index": 3154,
        "pre_local_low": 4039.655,
        "confirmation_time": "2026-07-15T16:10:00Z",
        "impulse_extreme": 4037.405,
        "fib50": 4044.198,
        "fib62": 4045.828,
        "entry_mid": 4045.013,
        "invalid": 4050.99,
        "risk_points": 5.977,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T17:25:00Z",
        "target1": 4039.035,
        "target2": 4033.058,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4038.14
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T17-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T17:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4039.315
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T17-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T17:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4066.3
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T18-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T18:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4081.52,
        "D_prior_index": 137,
        "H4_prior_index": 825,
        "H1_prior_index": 3157,
        "pre_local_low": 4029.585
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4057.375,
        "D_prior_index": 137,
        "H4_prior_index": 825,
        "H1_prior_index": 3158,
        "pre_local_high": 4081.52
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4063.225
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T20-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T20:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4059.96
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T22:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4058.235,
        "D_prior_index": 138,
        "H4_prior_index": 826,
        "H1_prior_index": 3160,
        "pre_local_high": 4064.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T23-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-15T23:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4062.075,
        "D_prior_index": 138,
        "H4_prior_index": 826,
        "H1_prior_index": 3161,
        "pre_local_low": 4058.235,
        "confirmation_time": "2026-07-15T23:20:00Z",
        "impulse_extreme": 4057.295,
        "fib50": 4059.685,
        "fib62": 4060.259,
        "entry_mid": 4059.972,
        "invalid": 4062.075,
        "risk_points": 2.103,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-15T23:45:00Z",
        "target1": 4057.869,
        "target2": 4055.765,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-15T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4055.825,
        "D_prior_index": 138,
        "H4_prior_index": 826,
        "H1_prior_index": 3161,
        "pre_local_high": 4064.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-15T23-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-15T23:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4061.1
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T00-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T00:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4054.845,
        "D_prior_index": 138,
        "H4_prior_index": 826,
        "H1_prior_index": 3162,
        "pre_local_high": 4063.815
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T00-15-00Z_short_liquidity_sweep_reversal",
      "status": "shadow",
      "outcome": "observed_no_fib_50_62_entry",
      "r": null,
      "journal_trade_id": null,
      "notes": "Structure moved after sweep, but no retrace into Fib 50/62 zone within 6h after confirmation.",
      "metrics": {
        "candidate_time": "2026-07-16T00:15:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4060.47,
        "D_prior_index": 138,
        "H4_prior_index": 826,
        "H1_prior_index": 3162,
        "pre_local_low": 4054.845,
        "confirmation_time": "2026-07-16T00:50:00Z",
        "impulse_extreme": 4053.265,
        "fib50": 4056.867,
        "fib62": 4057.732,
        "entry_mid": 4057.3,
        "invalid": 4060.47,
        "risk_points": 3.17,
        "invalid_before_fib_touch": false
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T00-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T00:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4054.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T00-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T00:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4061.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T01-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T01:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4041.11,
        "D_prior_index": 138,
        "H4_prior_index": 827,
        "H1_prior_index": 3163,
        "pre_local_high": 4061.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T01-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T01:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4046.195
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T02-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T02:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4028.78,
        "D_prior_index": 138,
        "H4_prior_index": 827,
        "H1_prior_index": 3164,
        "pre_local_high": 4061.21
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T02-30-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T02:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4035.915,
        "D_prior_index": 138,
        "H4_prior_index": 827,
        "H1_prior_index": 3164,
        "pre_local_low": 4028.78,
        "confirmation_time": "2026-07-16T02:35:00Z",
        "impulse_extreme": 4026.335,
        "fib50": 4031.125,
        "fib62": 4032.275,
        "entry_mid": 4031.7,
        "invalid": 4035.915,
        "risk_points": 4.215,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T02:55:00Z",
        "target1": 4027.485,
        "target2": 4023.269,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T03-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T03:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4033.24
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T03-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T03:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4027.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T03-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T03:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4037.075
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T04-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T04:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4032.05
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T04-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T04:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4038.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T04-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T04:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4032.0
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T05-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T05:30:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4025.47,
        "D_prior_index": 138,
        "H4_prior_index": 828,
        "H1_prior_index": 3167,
        "pre_local_high": 4038.045
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T05-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T05:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4025.46
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T06-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T06:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.62
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T06-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T06:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4031.535
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T07-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T07:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4023.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T07-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T07:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4028.47
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T08-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T08:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4034.31,
        "D_prior_index": 138,
        "H4_prior_index": 828,
        "H1_prior_index": 3170,
        "pre_local_low": 4023.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T08-15-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T08:15:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4025.43,
        "D_prior_index": 138,
        "H4_prior_index": 828,
        "H1_prior_index": 3170,
        "pre_local_high": 4034.31,
        "confirmation_time": "2026-07-16T08:45:00Z",
        "impulse_extreme": 4036.645,
        "fib50": 4031.037,
        "fib62": 4029.692,
        "entry_mid": 4030.365,
        "invalid": 4025.43,
        "risk_points": 4.935,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T09:25:00Z",
        "target1": 4035.299,
        "target2": 4040.234,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T08-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T08:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4035.655,
        "D_prior_index": 138,
        "H4_prior_index": 828,
        "H1_prior_index": 3170,
        "pre_local_low": 4023.03
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T08-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T08:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.645
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T09-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T09:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4037.98,
        "D_prior_index": 138,
        "H4_prior_index": 829,
        "H1_prior_index": 3171,
        "pre_local_low": 4023.415
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T09-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T09:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4030.55,
        "D_prior_index": 138,
        "H4_prior_index": 829,
        "H1_prior_index": 3171,
        "pre_local_high": 4037.98,
        "confirmation_time": "2026-07-16T11:50:00Z",
        "impulse_extreme": 4040.24,
        "fib50": 4035.395,
        "fib62": 4034.232,
        "entry_mid": 4034.814,
        "invalid": 4030.55,
        "risk_points": 4.264,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T12:05:00Z",
        "target1": 4039.077,
        "target2": 4043.341,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T09-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T09:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4036.305
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T10-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T10:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4029.665
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T10-30-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T10:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4031.54,
        "D_prior_index": 138,
        "H4_prior_index": 829,
        "H1_prior_index": 3172,
        "pre_local_high": 4037.98,
        "confirmation_time": "2026-07-16T11:50:00Z",
        "impulse_extreme": 4040.24,
        "fib50": 4035.89,
        "fib62": 4034.846,
        "entry_mid": 4035.368,
        "invalid": 4031.54,
        "risk_points": 3.828,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T12:05:00Z",
        "target1": 4039.196,
        "target2": 4043.024,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T12-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T12:00:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 4043.36
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T13-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T13:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3973.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T13-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T13:30:00Z",
        "direction": "Short",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4008.485,
        "D_prior_index": 138,
        "H4_prior_index": 830,
        "H1_prior_index": 3175,
        "pre_local_low": 3973.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T14-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T14:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3997.485
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T14-45-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T14:45:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3992.63
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T14-45-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T14:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 4006.815,
        "D_prior_index": 138,
        "H4_prior_index": 830,
        "H1_prior_index": 3176,
        "pre_local_low": 3973.8
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T15-00-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": -1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T15:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3989.47,
        "D_prior_index": 138,
        "H4_prior_index": 830,
        "H1_prior_index": 3177,
        "pre_local_high": 4008.485,
        "confirmation_time": "2026-07-16T15:25:00Z",
        "impulse_extreme": 4017.03,
        "fib50": 4003.25,
        "fib62": 3999.943,
        "entry_mid": 4001.596,
        "invalid": 3989.47,
        "risk_points": 12.126,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T16:00:00Z",
        "target1": 4013.723,
        "target2": 4025.849,
        "mechanical_outcome": "mechanical_sl_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T16-45-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T16:45:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3997.04,
        "D_prior_index": 138,
        "H4_prior_index": 830,
        "H1_prior_index": 3178,
        "pre_local_low": 3982.455,
        "confirmation_time": "2026-07-16T17:40:00Z",
        "impulse_extreme": 3980.095,
        "fib50": 3988.568,
        "fib62": 3990.601,
        "entry_mid": 3989.584,
        "invalid": 3997.04,
        "risk_points": 7.456,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T18:10:00Z",
        "target1": 3982.128,
        "target2": 3974.673,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T17-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T17:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3982.87
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T18-00-00Z_short_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T18:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3989.435,
        "D_prior_index": 138,
        "H4_prior_index": 831,
        "H1_prior_index": 3180,
        "pre_local_low": 3980.095,
        "confirmation_time": "2026-07-16T18:30:00Z",
        "impulse_extreme": 3979.07,
        "fib50": 3984.253,
        "fib62": 3985.496,
        "entry_mid": 3984.874,
        "invalid": 3989.435,
        "risk_points": 4.561,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T18:45:00Z",
        "target1": 3980.314,
        "target2": 3975.753,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T18-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T18:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3990.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T19-00-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T19:00:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3979.125,
        "D_prior_index": 138,
        "H4_prior_index": 831,
        "H1_prior_index": 3181,
        "pre_local_high": 3990.51
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T19-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T19:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3986.13
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T20-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T20:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3971.905
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T20-30-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T20:30:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3976.495
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T22-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T22:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3979.325
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T22-15-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T22:15:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3974.875
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T22-45-00Z_long_liquidity_sweep_reversal",
      "status": "needs_manual_replay",
      "outcome": "mechanical_fib_entry_candidate",
      "r": 1.0,
      "journal_trade_id": null,
      "notes": "Passes mechanical sweep + structure confirmation + Fib 50/62 retrace filter. Requires TradingView Bar Replay before any journal promotion.",
      "metrics": {
        "candidate_time": "2026-07-16T22:45:00Z",
        "direction": "Long",
        "scanner_score": 50.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3973.365,
        "D_prior_index": 139,
        "H4_prior_index": 832,
        "H1_prior_index": 3183,
        "pre_local_high": 3979.325,
        "confirmation_time": "2026-07-16T23:10:00Z",
        "impulse_extreme": 3980.425,
        "fib50": 3976.895,
        "fib62": 3976.048,
        "entry_mid": 3976.471,
        "invalid": 3973.365,
        "risk_points": 3.106,
        "invalid_before_fib_touch": false,
        "fib_touch_time": "2026-07-16T23:30:00Z",
        "target1": 3979.578,
        "target2": 3982.684,
        "mechanical_outcome": "mechanical_tp1_first"
      },
      "requires_manual_replay": true,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T23-15-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-16T23:15:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3980.845,
        "D_prior_index": 139,
        "H4_prior_index": 832,
        "H1_prior_index": 3184,
        "pre_local_low": 3973.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-16T23-30-00Z_long_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "scanner_signal_not_confirmed_on_m15_m5",
      "r": null,
      "journal_trade_id": null,
      "notes": "Prior-bar sweep/reclaim was not confirmed on both M15 and M5 at candidate time.",
      "metrics": {
        "candidate_time": "2026-07-16T23:30:00Z",
        "direction": "Long",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": false,
        "sweep_extreme": 3975.71
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    },
    {
      "candidate_id": "candidate_2026-07-17T00-00-00Z_short_liquidity_sweep_reversal",
      "status": "rejected",
      "outcome": "no_structure_confirmation_within_3h",
      "r": null,
      "journal_trade_id": null,
      "notes": "No M5 close beyond local structure within 3h after sweep.",
      "metrics": {
        "candidate_time": "2026-07-17T00:00:00Z",
        "direction": "Short",
        "scanner_score": 35.0,
        "m15_sweep_reclaim": true,
        "m5_sweep_reclaim": true,
        "sweep_extreme": 3987.51,
        "D_prior_index": 139,
        "H4_prior_index": 832,
        "H1_prior_index": 3185,
        "pre_local_low": 3973.365
      },
      "requires_manual_replay": false,
      "is_confirmed_trade": false
    }
  ]
}
