[
  {
    "candidate_id": "candidate_2026-01-12T17-00-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-01-12T17:00:00Z",
    "decision": "needs_more_context",
    "reason": "M30 is chopping around 4616. M5 shows local top around 4623 then dropping to 4615. Control claims valid Fib touch around 18:30 and TP1 hit, but requires manual visual TradingView confirmation of the HTF zones.",
    "htf_context": "D/H4 unclear from raw OHLCV alone; need visual charts to confirm if 4623 was a valid HTF PD array.",
    "m30_structure": "Ranging on M30 between 4600 and 4630.",
    "m15_m5_execution": "M5 sweeps 4623 then closes lower, creating a shift. Entry on retrace around 18:30.",
    "entry": null,
    "stop": null,
    "target": null,
    "r": null,
    "promoted_to_journal": false
  },
  {
    "candidate_id": "candidate_2026-01-12T17-15-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-01-12T17:15:00Z",
    "decision": "needs_more_context",
    "reason": "Duplicate/cluster with 17:00Z candidate. Needs TradingView Bar Replay to verify.",
    "htf_context": "D/H4 needs visual check.",
    "m30_structure": "Ranging.",
    "m15_m5_execution": "Cluster signal with 17:00.",
    "entry": null,
    "stop": null,
    "target": null,
    "r": null,
    "promoted_to_journal": false
  },
  {
    "candidate_id": "candidate_2026-01-12T20-30-00Z_short_liquidity_sweep_reversal",
    "timestamp": "2026-01-12T20:30:00Z",
    "decision": "needs_more_context",
    "reason": "M30 shows drop from 4611 to 4593. M5 sweeps 4604 at 20:30 then drops to 4592. Control shows TP1 hit. Needs TradingView for HTF context of 4604 level.",
    "htf_context": "Uncertain if 4604 is a valid HTF resistance/OB.",
    "m30_structure": "Bearish push underway.",
    "m15_m5_execution": "Sweep at 20:30, shift at 20:40, entry at 20:50.",
    "entry": null,
    "stop": null,
    "target": null,
    "r": null,
    "promoted_to_journal": false
  }
]