{
  "metadata": {
    "symbol": "XAUUSD",
    "mode": "hybrid_candidate_scanner_v2_multistrategy",
    "period": "2026",
    "source": "historical_ohlcv_mechanical_scan_v2",
    "isFinalBacktest": false,
    "generated_at": "2026-07-18T04:43:32Z",
    "scanner_version": "0.2.0-multistrategy-scaffold",
    "candidate_count": 1155,
    "strategy_counts": {
      "Order Block Reclaim": 301,
      "ICT Sweep + MSS + FVG": 69,
      "Breaker Continuation": 111,
      "Aryy HTF Narrative Fib 50/62": 674
    },
    "notes": "Candidate finder only for phase-2 multi-strategy coverage; final validity requires manual TradingView Bar Replay."
  },
  "candidates": [
    {
      "id": "candidate_v2_2026-01-02T12-30-00Z_long_order_block_reclaim",
      "date": "2026-01-02",
      "timestamp": "2026-01-02T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4385.755,
        "ob_high": 4390.04,
        "displacement_high": 4396.785
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-02T13-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-01-02",
      "timestamp": "2026-01-02T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4402.295,
        "fvg_low": 4377.625,
        "fvg_high": 4392.72
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-02T13-45-00Z_short_breaker_continuation",
      "date": "2026-01-02",
      "timestamp": "2026-01-02T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4402.295,
        "breaker_low": 4373.28,
        "breaker_high": 4399.72,
        "break_low": 4384.745
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-05T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-05",
      "timestamp": "2026-01-05T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4403.695,
        "impulse_high": 4412.88,
        "fib50": 4408.2875,
        "fib62": 4407.1853
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-05T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-05",
      "timestamp": "2026-01-05T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4411.565,
        "impulse_high": 4426.45,
        "fib50": 4419.0075,
        "fib62": 4417.221299999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-06T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4448.72,
        "impulse_high": 4460.89,
        "fib50": 4454.805,
        "fib62": 4453.3446
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-06T05-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4474.265,
        "fvg_low": 4464.83,
        "fvg_high": 4466.805
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-06T08-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4457.37,
        "impulse_high": 4475.79,
        "fib50": 4466.58,
        "fib62": 4464.3696
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-06T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4452.18,
        "impulse_high": 4468.46,
        "fib50": 4460.32,
        "fib62": 4462.2736
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-06T13-45-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4453.965,
        "fvg_low": 4462.295,
        "fvg_high": 4466.43
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-06T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4465.195,
        "impulse_high": 4489.78,
        "fib50": 4477.487499999999,
        "fib62": 4474.5373
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-06T15-30-00Z_long_order_block_reclaim",
      "date": "2026-01-06",
      "timestamp": "2026-01-06T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4464.405,
        "ob_high": 4473.355,
        "displacement_high": 4483.205
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-07T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4483.88,
        "impulse_high": 4496.87,
        "fib50": 4490.375,
        "fib62": 4488.8162
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T01-45-00Z_short_order_block_reclaim",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4470.795,
        "ob_high": 4479.115,
        "displacement_low": 4464.9
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-07T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4460.985,
        "impulse_high": 4477.975,
        "fib50": 4469.48,
        "fib62": 4471.5188
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T04-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4459.71,
        "impulse_high": 4475.615,
        "fib50": 4467.6625,
        "fib62": 4465.7539
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4443.24,
        "impulse_high": 4469.495,
        "fib50": 4456.3675,
        "fib62": 4459.5181
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4441.445,
        "impulse_high": 4455.73,
        "fib50": 4448.5875,
        "fib62": 4450.3017
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T08-00-00Z_short_order_block_reclaim",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4465.325,
        "ob_high": 4470.55,
        "displacement_low": 4448.685
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-07T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4446.62,
        "impulse_high": 4460.3,
        "fib50": 4453.46,
        "fib62": 4455.1016
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-07T15-15-00Z_short_order_block_reclaim",
      "date": "2026-01-07",
      "timestamp": "2026-01-07T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4440.86,
        "ob_high": 4453.15,
        "displacement_low": 4426.61
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-08T00-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4466.485,
        "fvg_low": 4458.82,
        "fvg_high": 4462.555
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-08T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4453.925,
        "impulse_high": 4466.485,
        "fib50": 4460.205,
        "fib62": 4461.7122
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-08T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4444.22,
        "fvg_low": 4452.515,
        "fvg_high": 4454.495
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-08T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4440.515,
        "impulse_high": 4449.61,
        "fib50": 4445.0625,
        "fib62": 4446.1539
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-08T04-30-00Z_short_order_block_reclaim",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4436.695,
        "ob_high": 4440.55,
        "displacement_low": 4436.54
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-08T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4428.415,
        "impulse_high": 4436.915,
        "fib50": 4432.665,
        "fib62": 4433.685
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-08T10-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4423.035,
        "impulse_high": 4432.88,
        "fib50": 4427.9575,
        "fib62": 4429.1389
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-08T13-30-00Z_long_order_block_reclaim",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4417.405,
        "ob_high": 4429.865,
        "displacement_high": 4436.205
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-08T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-08",
      "timestamp": "2026-01-08T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4421.515,
        "impulse_high": 4435.84,
        "fib50": 4428.6775,
        "fib62": 4430.3965
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4451.565,
        "impulse_high": 4473.88,
        "fib50": 4462.7225,
        "fib62": 4460.0446999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T01-00-00Z_short_order_block_reclaim",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4463.915,
        "ob_high": 4468.82,
        "displacement_low": 4460.085
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-09T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4456.22,
        "impulse_high": 4470.065,
        "fib50": 4463.1425,
        "fib62": 4461.4811
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T07-00-00Z_long_order_block_reclaim",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4466.1,
        "ob_high": 4471.04,
        "displacement_high": 4473.715
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-09T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4468.525,
        "impulse_high": 4477.7,
        "fib50": 4473.112499999999,
        "fib62": 4472.0115
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4468.775,
        "impulse_high": 4476.395,
        "fib50": 4472.585,
        "fib62": 4471.6706
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T13-00-00Z_short_breaker_continuation",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4480.615,
        "breaker_low": 4472.175,
        "breaker_high": 4475.495,
        "break_low": 4467.12
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-09T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4467.13,
        "impulse_high": 4480.615,
        "fib50": 4473.8724999999995,
        "fib62": 4475.4907
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T13-15-00Z_long_order_block_reclaim",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4469.315,
        "ob_high": 4472.02,
        "displacement_high": 4476.395
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-09T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4462.03,
        "impulse_high": 4474.93,
        "fib50": 4468.48,
        "fib62": 4466.932
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T13-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4458.935,
        "fvg_low": 4474.93,
        "fvg_high": 4478.86
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-09T14-00-00Z_long_breaker_continuation",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4458.935,
        "breaker_low": 4473.51,
        "breaker_high": 4492.135,
        "break_high": 4480.615
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-09T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4480.54,
        "impulse_high": 4496.71,
        "fib50": 4488.625,
        "fib62": 4486.6846
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-09T16-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-09",
      "timestamp": "2026-01-09T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4490.1,
        "impulse_high": 4511.195,
        "fib50": 4500.6475,
        "fib62": 4498.1161
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4562.415,
        "impulse_high": 4601.695,
        "fib50": 4582.055,
        "fib62": 4577.3414
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4581.925,
        "impulse_high": 4598.45,
        "fib50": 4590.1875,
        "fib62": 4588.2045
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4588.715,
        "impulse_high": 4611.24,
        "fib50": 4599.9775,
        "fib62": 4597.2745
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T14-15-00Z_long_breaker_continuation",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4579.07,
        "breaker_low": 4585.365,
        "breaker_high": 4586.88,
        "break_high": 4599.475
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-12T14-30-00Z_long_breaker_continuation",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4581.75,
        "breaker_low": 4592.12,
        "breaker_high": 4592.15,
        "break_high": 4599.475
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-12T16-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4601.905,
        "impulse_high": 4622.335,
        "fib50": 4612.12,
        "fib62": 4609.6684
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4591.66,
        "impulse_high": 4604.805,
        "fib50": 4598.2325,
        "fib62": 4599.8099
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-12T23-30-00Z_short_order_block_reclaim",
      "date": "2026-01-12",
      "timestamp": "2026-01-12T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4589.415,
        "ob_high": 4598.06,
        "displacement_low": 4578.095
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-13T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4584.12,
        "impulse_high": 4600.0,
        "fib50": 4592.0599999999995,
        "fib62": 4590.1544
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-13T05-30-00Z_long_order_block_reclaim",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4591.775,
        "ob_high": 4598.52,
        "displacement_high": 4601.54
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-13T07-30-00Z_short_breaker_continuation",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4602.195,
        "breaker_low": 4585.765,
        "breaker_high": 4601.385,
        "break_low": 4581.96
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-13T08-30-00Z_short_breaker_continuation",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4601.54,
        "breaker_low": 4594.37,
        "breaker_high": 4594.495,
        "break_low": 4581.96
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-13T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4585.765,
        "impulse_high": 4602.195,
        "fib50": 4593.98,
        "fib62": 4595.9516
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-13T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4577.925,
        "impulse_high": 4589.38,
        "fib50": 4583.6525,
        "fib62": 4585.0271
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-13T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4600.925,
        "impulse_high": 4621.03,
        "fib50": 4610.9775,
        "fib62": 4608.5649
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-13T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4611.8,
        "impulse_high": 4634.89,
        "fib50": 4623.345,
        "fib62": 4620.5742
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-13T15-15-00Z_long_order_block_reclaim",
      "date": "2026-01-13",
      "timestamp": "2026-01-13T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4599.505,
        "ob_high": 4606.545,
        "displacement_high": 4620.605
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-14T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4614.99,
        "impulse_high": 4630.355,
        "fib50": 4622.6725,
        "fib62": 4620.8287
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-14T05-45-00Z_long_order_block_reclaim",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T05:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4613.51,
        "ob_high": 4621.77,
        "displacement_high": 4625.69
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-14T06-00-00Z_short_order_block_reclaim",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4631.785,
        "ob_high": 4639.89,
        "displacement_low": 4617.945
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-14T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4618.575,
        "impulse_high": 4635.375,
        "fib50": 4626.975,
        "fib62": 4624.959
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-14T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4607.02,
        "impulse_high": 4635.365,
        "fib50": 4621.1925,
        "fib62": 4624.5939
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-14T21-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T21:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4612.905,
        "impulse_high": 4630.225,
        "fib50": 4621.5650000000005,
        "fib62": 4619.4866
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-14T21-15-00Z_short_order_block_reclaim",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T21:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4625.825,
        "ob_high": 4633.12,
        "displacement_low": 4624.47
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-14T21-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T21:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4620.905,
        "impulse_high": 4633.05,
        "fib50": 4626.9775,
        "fib62": 4628.4349
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-14T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-14",
      "timestamp": "2026-01-14T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4605.465,
        "impulse_high": 4624.17,
        "fib50": 4614.8175,
        "fib62": 4617.0621
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4597.06,
        "impulse_high": 4617.54,
        "fib50": 4607.3,
        "fib62": 4609.7576
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T03-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4581.23,
        "impulse_high": 4604.38,
        "fib50": 4592.805,
        "fib62": 4595.583
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T11-45-00Z_long_order_block_reclaim",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4611.28,
        "ob_high": 4615.87,
        "displacement_high": 4619.455
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-15T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4610.655,
        "impulse_high": 4620.645,
        "fib50": 4615.65,
        "fib62": 4614.4512
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T12-15-00Z_short_order_block_reclaim",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4615.705,
        "ob_high": 4620.56,
        "displacement_low": 4614.69
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-15T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4581.625,
        "impulse_high": 4605.96,
        "fib50": 4593.7925,
        "fib62": 4596.7127
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4602.53,
        "impulse_high": 4616.32,
        "fib50": 4609.424999999999,
        "fib62": 4611.0797999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T20-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4600.71,
        "impulse_high": 4616.425,
        "fib50": 4608.5675,
        "fib62": 4610.4533
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-15T23-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-15",
      "timestamp": "2026-01-15T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4604.5,
        "impulse_high": 4615.755,
        "fib50": 4610.1275000000005,
        "fib62": 4608.7769
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4598.52,
        "impulse_high": 4608.19,
        "fib50": 4603.355,
        "fib62": 4604.5154
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T01-15-00Z_short_order_block_reclaim",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4605.405,
        "ob_high": 4611.32,
        "displacement_low": 4601.155
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-16T06-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4596.55,
        "impulse_high": 4616.315,
        "fib50": 4606.4325,
        "fib62": 4604.0607
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4603.615,
        "impulse_high": 4612.41,
        "fib50": 4608.0125,
        "fib62": 4609.0679
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4594.095,
        "impulse_high": 4608.145,
        "fib50": 4601.120000000001,
        "fib62": 4602.8060000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4596.925,
        "impulse_high": 4612.245,
        "fib50": 4604.585,
        "fib62": 4602.7466
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4598.6,
        "impulse_high": 4611.66,
        "fib50": 4605.13,
        "fib62": 4603.562800000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T12-15-00Z_long_breaker_continuation",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4598.6,
        "breaker_low": 4600.28,
        "breaker_high": 4606.78,
        "break_high": 4611.215
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-16T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4582.67,
        "impulse_high": 4605.77,
        "fib50": 4594.22,
        "fib62": 4596.992
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-16T14-15-00Z_short_breaker_continuation",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4611.66,
        "breaker_low": 4605.525,
        "breaker_high": 4606.59,
        "break_low": 4598.6
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-16T14-30-00Z_short_breaker_continuation",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4616.005,
        "breaker_low": 4609.705,
        "breaker_high": 4611.28,
        "break_low": 4598.6
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-16T14-45-00Z_short_breaker_continuation",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T14:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4616.33,
        "breaker_low": 4612.435,
        "breaker_high": 4615.605,
        "break_low": 4598.6
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-16T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-16",
      "timestamp": "2026-01-16T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4564.575,
        "impulse_high": 4620.39,
        "fib50": 4592.4825,
        "fib62": 4599.1803
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-18T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-18",
      "timestamp": "2026-01-18T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4646.135,
        "impulse_high": 4684.24,
        "fib50": 4665.1875,
        "fib62": 4660.6149000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-19T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-19",
      "timestamp": "2026-01-19T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4669.83,
        "impulse_high": 4679.11,
        "fib50": 4674.469999999999,
        "fib62": 4673.3564
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-19T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-19",
      "timestamp": "2026-01-19T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4660.185,
        "impulse_high": 4672.285,
        "fib50": 4666.235000000001,
        "fib62": 4664.783
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-19T16-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-19",
      "timestamp": "2026-01-19T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4665.95,
        "impulse_high": 4676.28,
        "fib50": 4671.115,
        "fib62": 4669.8754
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-19T18-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-19",
      "timestamp": "2026-01-19T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4670.99,
        "impulse_high": 4678.95,
        "fib50": 4674.969999999999,
        "fib62": 4674.0148
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-19T23-30-00Z_short_order_block_reclaim",
      "date": "2026-01-19",
      "timestamp": "2026-01-19T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4667.835,
        "ob_high": 4671.71,
        "displacement_low": 4664.76
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-20T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4659.395,
        "impulse_high": 4668.07,
        "fib50": 4663.7325,
        "fib62": 4664.7735
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T00-30-00Z_short_order_block_reclaim",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4664.1,
        "ob_high": 4668.065,
        "displacement_low": 4659.395
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-20T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4659.915,
        "impulse_high": 4673.745,
        "fib50": 4666.83,
        "fib62": 4665.1704
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T08-15-00Z_long_order_block_reclaim",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T08:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4714.935,
        "ob_high": 4722.845,
        "displacement_high": 4725.76
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-20T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4716.065,
        "impulse_high": 4731.71,
        "fib50": 4723.8875,
        "fib62": 4722.0100999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T10-00-00Z_long_order_block_reclaim",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4724.215,
        "ob_high": 4731.795,
        "displacement_high": 4734.025
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-20T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4725.87,
        "impulse_high": 4735.465,
        "fib50": 4730.6675,
        "fib62": 4729.5161
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T13-15-00Z_short_order_block_reclaim",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4726.0,
        "ob_high": 4729.615,
        "displacement_low": 4722.15
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-20T13-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4715.035,
        "fvg_low": 4726.405,
        "fvg_high": 4727.4
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-20T14-30-00Z_long_breaker_continuation",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4715.035,
        "breaker_low": 4719.38,
        "breaker_high": 4730.525,
        "break_high": 4735.465
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-20T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4732.37,
        "impulse_high": 4750.85,
        "fib50": 4741.610000000001,
        "fib62": 4739.3924
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4715.035,
        "impulse_high": 4738.54,
        "fib50": 4726.7875,
        "fib62": 4723.966899999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-20T15-15-00Z_long_breaker_continuation",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4716.005,
        "breaker_low": 4723.54,
        "breaker_high": 4726.405,
        "break_high": 4735.465
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-20T15-45-00Z_short_order_block_reclaim",
      "date": "2026-01-20",
      "timestamp": "2026-01-20T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4738.575,
        "ob_high": 4748.765,
        "displacement_low": 4722.51
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-21T09-15-00Z_short_order_block_reclaim",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T09:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4870.17,
        "ob_high": 4888.545,
        "displacement_low": 4859.105
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-21T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4852.43,
        "impulse_high": 4876.775,
        "fib50": 4864.6025,
        "fib62": 4861.6811
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-21T13-45-00Z_long_order_block_reclaim",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4861.71,
        "ob_high": 4871.57,
        "displacement_high": 4879.155
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-21T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4866.87,
        "impulse_high": 4880.415,
        "fib50": 4873.6425,
        "fib62": 4872.0171
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-21T14-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4880.935,
        "fvg_low": 4864.695,
        "fvg_high": 4870.045
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-21T14-30-00Z_short_breaker_continuation",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4879.155,
        "breaker_low": 4866.87,
        "breaker_high": 4868.12,
        "break_low": 4855.19
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-21T14-30-00Z_short_order_block_reclaim",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4870.045,
        "ob_high": 4880.415,
        "displacement_low": 4839.395
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-21T15-00-00Z_short_breaker_continuation",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4880.935,
        "breaker_low": 4839.395,
        "breaker_high": 4879.3,
        "break_low": 4855.19
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-21T15-45-00Z_short_order_block_reclaim",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4847.155,
        "ob_high": 4868.83,
        "displacement_low": 4813.355
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-21T16-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4829.175,
        "impulse_high": 4854.67,
        "fib50": 4841.922500000001,
        "fib62": 4838.8631000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-21T19-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4854.165,
        "fvg_low": 4821.735,
        "fvg_high": 4843.225
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-01-21T20-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4755.075,
        "impulse_high": 4821.735,
        "fib50": 4788.405,
        "fib62": 4796.4042
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-21T20-30-00Z_short_breaker_continuation",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4854.165,
        "breaker_low": 4805.31,
        "breaker_high": 4849.055,
        "break_low": 4802.62
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-21T21-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-21",
      "timestamp": "2026-01-21T21:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4805.31,
        "impulse_high": 4854.165,
        "fib50": 4829.7375,
        "fib62": 4835.600100000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-22T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-22",
      "timestamp": "2026-01-22T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4825.75,
        "impulse_high": 4838.16,
        "fib50": 4831.955,
        "fib62": 4830.4658
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-22T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-22",
      "timestamp": "2026-01-22T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4815.805,
        "impulse_high": 4835.46,
        "fib50": 4825.6325,
        "fib62": 4823.2739
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-22T14-00-00Z_short_order_block_reclaim",
      "date": "2026-01-22",
      "timestamp": "2026-01-22T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4826.02,
        "ob_high": 4835.46,
        "displacement_low": 4810.895
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-22T15-00-00Z_long_breaker_continuation",
      "date": "2026-01-22",
      "timestamp": "2026-01-22T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4815.805,
        "breaker_low": 4819.685,
        "breaker_high": 4827.67,
        "break_high": 4836.43
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-23T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4930.84,
        "impulse_high": 4960.67,
        "fib50": 4945.755,
        "fib62": 4942.1754
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-23T01-00-00Z_long_order_block_reclaim",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4947.58,
        "ob_high": 4956.125,
        "displacement_high": 4965.985
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-23T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4900.9,
        "impulse_high": 4947.825,
        "fib50": 4924.362499999999,
        "fib62": 4929.9935
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-23T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4903.405,
        "impulse_high": 4921.72,
        "fib50": 4912.5625,
        "fib62": 4910.3647
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-23T13-15-00Z_long_order_block_reclaim",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4921.11,
        "ob_high": 4926.44,
        "displacement_high": 4934.425
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-23T15-45-00Z_long_order_block_reclaim",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4942.47,
        "ob_high": 4954.37,
        "displacement_high": 4961.055
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-23T17-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4959.155,
        "impulse_high": 4986.595,
        "fib50": 4972.875,
        "fib62": 4969.5822
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-23T18-00-00Z_short_order_block_reclaim",
      "date": "2026-01-23",
      "timestamp": "2026-01-23T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4982.335,
        "ob_high": 4988.16,
        "displacement_low": 4962.005
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-26T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5066.925,
        "impulse_high": 5089.02,
        "fib50": 5077.9725,
        "fib62": 5075.3211
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T06-00-00Z_long_order_block_reclaim",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5053.005,
        "ob_high": 5068.105,
        "displacement_high": 5076.69
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-26T08-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5073.94,
        "impulse_high": 5095.855,
        "fib50": 5084.897499999999,
        "fib62": 5082.267699999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5082.34,
        "impulse_high": 5096.97,
        "fib50": 5089.655000000001,
        "fib62": 5087.8994
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5074.865,
        "impulse_high": 5097.025,
        "fib50": 5085.945,
        "fib62": 5083.2858
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T18-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5065.385,
        "impulse_high": 5094.475,
        "fib50": 5079.93,
        "fib62": 5076.439200000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T18-45-00Z_short_order_block_reclaim",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T18:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5076.55,
        "ob_high": 5090.76,
        "displacement_low": 5057.935
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-26T20-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5020.635,
        "impulse_high": 5069.85,
        "fib50": 5045.2425,
        "fib62": 5051.148300000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-26T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-26",
      "timestamp": "2026-01-26T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5011.035,
        "impulse_high": 5059.165,
        "fib50": 5035.1,
        "fib62": 5040.8756
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-27T08-30-00Z_short_order_block_reclaim",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5079.25,
        "ob_high": 5088.165,
        "displacement_low": 5075.495
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-27T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5078.165,
        "impulse_high": 5088.765,
        "fib50": 5083.465,
        "fib62": 5082.193
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-27T10-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5082.78,
        "impulse_high": 5099.65,
        "fib50": 5091.215,
        "fib62": 5089.1906
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-27T10-00-00Z_long_order_block_reclaim",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5086.175,
        "ob_high": 5094.4,
        "displacement_high": 5099.65
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-27T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5046.84,
        "impulse_high": 5077.6,
        "fib50": 5062.22,
        "fib62": 5065.9112000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-27T14-30-00Z_short_order_block_reclaim",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5071.62,
        "ob_high": 5082.34,
        "displacement_low": 5055.365
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-27T17-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-27",
      "timestamp": "2026-01-27T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5068.775,
        "impulse_high": 5091.32,
        "fib50": 5080.0475,
        "fib62": 5077.3421
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-28T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5133.105,
        "impulse_high": 5182.795,
        "fib50": 5157.95,
        "fib62": 5151.9872
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-28T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5254.95,
        "impulse_high": 5271.5,
        "fib50": 5263.225,
        "fib62": 5261.239
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-28T12-45-00Z_long_order_block_reclaim",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5258.375,
        "ob_high": 5269.045,
        "displacement_high": 5273.17
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-28T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5261.45,
        "impulse_high": 5279.49,
        "fib50": 5270.469999999999,
        "fib62": 5268.3052
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-28T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5250.29,
        "impulse_high": 5288.485,
        "fib50": 5269.3875,
        "fib62": 5264.8041
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-28T17-00-00Z_long_breaker_continuation",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5235.75,
        "breaker_low": 5285.925,
        "breaker_high": 5298.35,
        "break_high": 5289.71
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-01-28T19-15-00Z_short_order_block_reclaim",
      "date": "2026-01-28",
      "timestamp": "2026-01-28T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5298.98,
        "ob_high": 5325.97,
        "displacement_low": 5268.45
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-29T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-29",
      "timestamp": "2026-01-29T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5432.455,
        "impulse_high": 5496.43,
        "fib50": 5464.4425,
        "fib62": 5456.7655
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-29T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-29",
      "timestamp": "2026-01-29T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5470.9,
        "impulse_high": 5516.71,
        "fib50": 5493.805,
        "fib62": 5488.3078
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-29T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-29",
      "timestamp": "2026-01-29T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5097.215,
        "impulse_high": 5496.66,
        "fib50": 5296.9375,
        "fib62": 5344.8709
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5300.0,
        "impulse_high": 5410.625,
        "fib50": 5355.3125,
        "fib62": 5368.5875
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T02-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5112.105,
        "impulse_high": 5312.725,
        "fib50": 5212.415,
        "fib62": 5236.4894
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T06-30-00Z_short_order_block_reclaim",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5173.35,
        "ob_high": 5205.81,
        "displacement_low": 5156.565
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-30T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5054.43,
        "impulse_high": 5155.04,
        "fib50": 5104.735000000001,
        "fib62": 5116.8082
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5014.465,
        "impulse_high": 5133.05,
        "fib50": 5073.7575,
        "fib62": 5087.987700000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T10-30-00Z_short_order_block_reclaim",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5092.44,
        "ob_high": 5129.2,
        "displacement_low": 5014.465
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-30T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5055.375,
        "impulse_high": 5136.315,
        "fib50": 5095.844999999999,
        "fib62": 5105.5578
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T14-00-00Z_short_order_block_reclaim",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5054.055,
        "ob_high": 5100.2,
        "displacement_low": 5014.15
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-30T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4800.855,
        "impulse_high": 4925.705,
        "fib50": 4863.28,
        "fib62": 4878.262
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T18-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4691.755,
        "impulse_high": 4890.6,
        "fib50": 4791.1775,
        "fib62": 4815.0389000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-01-30T19-00-00Z_short_order_block_reclaim",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4898.995,
        "ob_high": 4940.845,
        "displacement_low": 4838.62
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-01-30T19-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-01-30",
      "timestamp": "2026-01-30T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4898.995,
        "impulse_high": 4986.51,
        "fib50": 4942.7525000000005,
        "fib62": 4953.2543000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-01T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-01",
      "timestamp": "2026-02-01T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4697.14,
        "impulse_high": 4834.255,
        "fib50": 4765.6975,
        "fib62": 4782.1513
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-02T00-15-00Z_short_order_block_reclaim",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4857.56,
        "ob_high": 4901.69,
        "displacement_low": 4712.805
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-02T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4433.49,
        "impulse_high": 4574.03,
        "fib50": 4503.76,
        "fib62": 4520.6248
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-02T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4498.085,
        "impulse_high": 4658.99,
        "fib50": 4578.5375,
        "fib62": 4597.8461
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-02T10-00-00Z_long_order_block_reclaim",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4678.8,
        "ob_high": 4713.115,
        "displacement_high": 4731.64
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-02T10-45-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T10:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4657.01,
        "fvg_low": 4698.615,
        "fvg_high": 4703.27
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-02T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4721.0,
        "impulse_high": 4804.2,
        "fib50": 4762.6,
        "fib62": 4772.584
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-02T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4617.31,
        "impulse_high": 4704.725,
        "fib50": 4661.0175,
        "fib62": 4671.5073
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-02T20-15-00Z_long_order_block_reclaim",
      "date": "2026-02-02",
      "timestamp": "2026-02-02T20:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4631.55,
        "ob_high": 4654.56,
        "displacement_high": 4699.735
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-03T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-03",
      "timestamp": "2026-02-03T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4766.29,
        "impulse_high": 4856.76,
        "fib50": 4811.525,
        "fib62": 4800.6686
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-03T09-30-00Z_short_order_block_reclaim",
      "date": "2026-02-03",
      "timestamp": "2026-02-03T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4908.005,
        "ob_high": 4924.035,
        "displacement_low": 4890.37
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-03T16-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-03",
      "timestamp": "2026-02-03T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4929.665,
        "impulse_high": 4980.76,
        "fib50": 4955.2125,
        "fib62": 4949.0811
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-03T17-45-00Z_short_order_block_reclaim",
      "date": "2026-02-03",
      "timestamp": "2026-02-03T17:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4937.27,
        "ob_high": 4970.05,
        "displacement_low": 4913.565
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-04T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4946.16,
        "impulse_high": 5000.4,
        "fib50": 4973.28,
        "fib62": 4966.7712
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-04T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4968.515,
        "impulse_high": 5016.53,
        "fib50": 4992.5225,
        "fib62": 4986.7607
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-04T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5053.855,
        "impulse_high": 5080.215,
        "fib50": 5067.035,
        "fib62": 5063.8718
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-04T07-30-00Z_long_order_block_reclaim",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5063.235,
        "ob_high": 5082.93,
        "displacement_high": 5089.65
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-04T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5022.06,
        "impulse_high": 5050.5,
        "fib50": 5036.280000000001,
        "fib62": 5032.867200000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-04T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4967.005,
        "impulse_high": 5038.29,
        "fib50": 5002.6475,
        "fib62": 5011.2017
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-04T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-04",
      "timestamp": "2026-02-04T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4887.62,
        "impulse_high": 4962.52,
        "fib50": 4925.07,
        "fib62": 4934.058
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-05T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4987.85,
        "impulse_high": 5021.315,
        "fib50": 5004.5825,
        "fib62": 5000.5667
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-05T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4935.81,
        "impulse_high": 5012.325,
        "fib50": 4974.0675,
        "fib62": 4983.2493
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-05T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4805.98,
        "impulse_high": 4941.0,
        "fib50": 4873.49,
        "fib62": 4889.6924
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-05T09-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4853.275,
        "impulse_high": 4914.15,
        "fib50": 4883.7125,
        "fib62": 4891.0175
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-05T14-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4806.26,
        "fvg_low": 4838.54,
        "fvg_high": 4839.22
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-05T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-05",
      "timestamp": "2026-02-05T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4813.52,
        "impulse_high": 4866.825,
        "fib50": 4840.172500000001,
        "fib62": 4846.5691
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-06T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4703.485,
        "impulse_high": 4757.045,
        "fib50": 4730.264999999999,
        "fib62": 4736.6921999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-06T00-15-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4655.23,
        "fvg_low": 4707.695,
        "fvg_high": 4708.1
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-06T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4759.48,
        "impulse_high": 4804.935,
        "fib50": 4782.2075,
        "fib62": 4787.6621000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-06T13-45-00Z_long_order_block_reclaim",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4904.98,
        "ob_high": 4928.425,
        "displacement_high": 4938.505
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-06T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4908.83,
        "impulse_high": 4938.505,
        "fib50": 4923.6675,
        "fib62": 4920.1065
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-06T16-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4897.55,
        "impulse_high": 4949.975,
        "fib50": 4923.762500000001,
        "fib62": 4917.471500000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-06T20-45-00Z_short_order_block_reclaim",
      "date": "2026-02-06",
      "timestamp": "2026-02-06T20:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4946.7,
        "ob_high": 4957.465,
        "displacement_low": 4936.69
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-09T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4965.42,
        "impulse_high": 5028.35,
        "fib50": 4996.885,
        "fib62": 4989.3334
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-09T01-30-00Z_long_order_block_reclaim",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4965.42,
        "ob_high": 4990.67,
        "displacement_high": 5028.35
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-09T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5003.0,
        "impulse_high": 5032.115,
        "fib50": 5017.5575,
        "fib62": 5014.0637
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-09T10-30-00Z_short_order_block_reclaim",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4996.71,
        "ob_high": 5013.885,
        "displacement_low": 4986.235
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-09T13-30-00Z_short_order_block_reclaim",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5007.84,
        "ob_high": 5025.0,
        "displacement_low": 5003.57
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-09T14-00-00Z_long_order_block_reclaim",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5007.435,
        "ob_high": 5019.155,
        "displacement_high": 5025.0
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-09T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5014.005,
        "impulse_high": 5040.845,
        "fib50": 5027.425,
        "fib62": 5024.2042
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-09T17-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5033.36,
        "impulse_high": 5060.56,
        "fib50": 5046.96,
        "fib62": 5043.696
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-09T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-09",
      "timestamp": "2026-02-09T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4987.385,
        "impulse_high": 5064.13,
        "fib50": 5025.7575,
        "fib62": 5034.9669
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5012.99,
        "impulse_high": 5040.68,
        "fib50": 5026.835,
        "fib62": 5023.5122
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5045.155,
        "impulse_high": 5057.555,
        "fib50": 5051.355,
        "fib62": 5049.867
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T12-15-00Z_short_order_block_reclaim",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5045.155,
        "ob_high": 5057.555,
        "displacement_low": 5041.22
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-10T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5019.935,
        "impulse_high": 5047.96,
        "fib50": 5033.9475,
        "fib62": 5037.3105000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T13-00-00Z_short_order_block_reclaim",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5042.545,
        "ob_high": 5051.555,
        "displacement_low": 5023.815
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-10T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5041.22,
        "impulse_high": 5057.285,
        "fib50": 5049.2525000000005,
        "fib62": 5051.1803
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5038.045,
        "impulse_high": 5059.06,
        "fib50": 5048.5525,
        "fib62": 5046.0307
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-10T14-45-00Z_long_breaker_continuation",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T14:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5019.935,
        "breaker_low": 5029.82,
        "breaker_high": 5034.495,
        "break_high": 5058.195
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-10T14-45-00Z_long_order_block_reclaim",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T14:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5033.455,
        "ob_high": 5046.395,
        "displacement_high": 5059.06
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-10T17-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T17:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5040.22,
        "fvg_low": 5027.985,
        "fvg_high": 5032.12
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-10T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-10",
      "timestamp": "2026-02-10T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5028.975,
        "impulse_high": 5054.855,
        "fib50": 5041.915,
        "fib62": 5038.8094
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5032.71,
        "impulse_high": 5053.035,
        "fib50": 5042.8724999999995,
        "fib62": 5040.4335
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5041.245,
        "impulse_high": 5057.775,
        "fib50": 5049.51,
        "fib62": 5047.5264
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T07-00-00Z_long_order_block_reclaim",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5053.56,
        "ob_high": 5060.76,
        "displacement_high": 5064.7
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-11T10-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5053.775,
        "impulse_high": 5072.185,
        "fib50": 5062.98,
        "fib62": 5060.7708
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T10-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5062.59,
        "impulse_high": 5076.685,
        "fib50": 5069.637500000001,
        "fib62": 5067.9461
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5068.24,
        "impulse_high": 5101.49,
        "fib50": 5084.865,
        "fib62": 5080.875
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5082.68,
        "impulse_high": 5108.255,
        "fib50": 5095.467500000001,
        "fib62": 5092.3985
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-11T12-15-00Z_long_order_block_reclaim",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5082.68,
        "ob_high": 5095.985,
        "displacement_high": 5108.255
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-11T12-30-00Z_long_breaker_continuation",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5045.92,
        "breaker_low": 5051.745,
        "breaker_high": 5053.84,
        "break_high": 5069.235
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-11T23-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5095.915,
        "fvg_low": 5071.18,
        "fvg_high": 5076.805
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-11T23-30-00Z_short_breaker_continuation",
      "date": "2026-02-11",
      "timestamp": "2026-02-11T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 5095.915,
        "breaker_low": 5053.89,
        "breaker_high": 5095.495,
        "break_low": 5069.965
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-12T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5055.36,
        "impulse_high": 5076.475,
        "fib50": 5065.9175,
        "fib62": 5068.4513
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T12-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5068.665,
        "fvg_low": 5058.76,
        "fvg_high": 5060.19
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-12T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5061.045,
        "impulse_high": 5077.09,
        "fib50": 5069.0675,
        "fib62": 5070.9929
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5051.485,
        "impulse_high": 5074.55,
        "fib50": 5063.0175,
        "fib62": 5060.2497
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5060.52,
        "impulse_high": 5083.855,
        "fib50": 5072.1875,
        "fib62": 5069.3873
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T14-00-00Z_long_order_block_reclaim",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5062.25,
        "ob_high": 5074.55,
        "displacement_high": 5077.175
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-12T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5055.02,
        "impulse_high": 5077.905,
        "fib50": 5066.4625,
        "fib62": 5069.2087
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T15-00-00Z_short_breaker_continuation",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 5074.55,
        "breaker_low": 5062.25,
        "breaker_high": 5065.71,
        "break_low": 5048.935
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-12T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5039.7,
        "impulse_high": 5071.815,
        "fib50": 5055.7575,
        "fib62": 5059.6113
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-12T15-45-00Z_short_breaker_continuation",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 5077.175,
        "breaker_low": 5060.52,
        "breaker_high": 5062.855,
        "break_low": 5048.935
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-12T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-12",
      "timestamp": "2026-02-12T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4878.5,
        "impulse_high": 5068.36,
        "fib50": 4973.43,
        "fib62": 4996.2132
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-13T05-45-00Z_short_order_block_reclaim",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T05:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4964.915,
        "ob_high": 4986.555,
        "displacement_low": 4959.52
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-13T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4944.93,
        "impulse_high": 4980.315,
        "fib50": 4962.6224999999995,
        "fib62": 4966.8687
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-13T08-00-00Z_short_breaker_continuation",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4997.555,
        "breaker_low": 4984.965,
        "breaker_high": 4985.97,
        "break_low": 4962.05
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-13T09-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4964.44,
        "impulse_high": 4982.975,
        "fib50": 4973.7075,
        "fib62": 4975.9317
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-13T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4947.17,
        "impulse_high": 4978.6,
        "fib50": 4962.885,
        "fib62": 4966.6566
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-13T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4966.89,
        "impulse_high": 4999.685,
        "fib50": 4983.2875,
        "fib62": 4979.3521
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-13T14-30-00Z_long_order_block_reclaim",
      "date": "2026-02-13",
      "timestamp": "2026-02-13T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4957.71,
        "ob_high": 4970.97,
        "displacement_high": 4999.685
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-15T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-15",
      "timestamp": "2026-02-15T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5009.64,
        "impulse_high": 5032.565,
        "fib50": 5021.1025,
        "fib62": 5018.3515
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-16T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-16",
      "timestamp": "2026-02-16T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5006.995,
        "impulse_high": 5031.29,
        "fib50": 5019.1425,
        "fib62": 5016.2271
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-16T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-16",
      "timestamp": "2026-02-16T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4992.725,
        "impulse_high": 5005.145,
        "fib50": 4998.935,
        "fib62": 5000.4254
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-16T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-16",
      "timestamp": "2026-02-16T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4993.29,
        "impulse_high": 5003.905,
        "fib50": 4998.5975,
        "fib62": 4999.8713
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-16T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-16",
      "timestamp": "2026-02-16T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4969.11,
        "impulse_high": 4988.51,
        "fib50": 4978.8099999999995,
        "fib62": 4981.138
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4932.235,
        "impulse_high": 4979.205,
        "fib50": 4955.719999999999,
        "fib62": 4961.3564
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4888.265,
        "impulse_high": 4954.49,
        "fib50": 4921.3775000000005,
        "fib62": 4929.3245
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4907.885,
        "impulse_high": 4928.435,
        "fib50": 4918.16,
        "fib62": 4920.626
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T13-00-00Z_long_breaker_continuation",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4907.885,
        "breaker_low": 4921.775,
        "breaker_high": 4922.91,
        "break_high": 4939.4
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-17T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4911.05,
        "impulse_high": 4933.545,
        "fib50": 4922.297500000001,
        "fib62": 4924.9969
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4869.965,
        "impulse_high": 4924.625,
        "fib50": 4897.295,
        "fib62": 4903.8542
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-17T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-17",
      "timestamp": "2026-02-17T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4856.24,
        "impulse_high": 4907.235,
        "fib50": 4881.737499999999,
        "fib62": 4887.8569
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-18T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4854.24,
        "impulse_high": 4884.135,
        "fib50": 4869.1875,
        "fib62": 4872.7749
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-18T01-15-00Z_long_order_block_reclaim",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4872.435,
        "ob_high": 4883.4,
        "displacement_high": 4891.485
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-18T12-00-00Z_short_order_block_reclaim",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4918.045,
        "ob_high": 4924.66,
        "displacement_low": 4909.345
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-18T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4943.2,
        "impulse_high": 4959.515,
        "fib50": 4951.3575,
        "fib62": 4949.3997
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-18T19-30-00Z_short_order_block_reclaim",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4984.18,
        "ob_high": 4994.49,
        "displacement_low": 4972.87
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-18T21-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T21:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4976.845,
        "impulse_high": 4987.555,
        "fib50": 4982.200000000001,
        "fib62": 4980.9148000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-18T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-18",
      "timestamp": "2026-02-18T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4966.715,
        "impulse_high": 4984.065,
        "fib50": 4975.389999999999,
        "fib62": 4973.308
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-19T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4961.865,
        "impulse_high": 4975.63,
        "fib50": 4968.7474999999995,
        "fib62": 4967.0957
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-19T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5001.15,
        "impulse_high": 5020.29,
        "fib50": 5010.719999999999,
        "fib62": 5008.4232
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-19T13-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4971.125,
        "fvg_low": 4987.755,
        "fvg_high": 4991.505
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-19T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4971.125,
        "impulse_high": 4998.81,
        "fib50": 4984.967500000001,
        "fib62": 4981.6453
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-19T14-15-00Z_short_breaker_continuation",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4997.285,
        "breaker_low": 4971.125,
        "breaker_high": 4983.465,
        "break_low": 4974.52
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-19T14-30-00Z_long_breaker_continuation",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4974.52,
        "breaker_low": 4985.02,
        "breaker_high": 4986.26,
        "break_high": 4996.48
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-19T14-30-00Z_long_order_block_reclaim",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4979.68,
        "ob_high": 4987.755,
        "displacement_high": 4997.285
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-19T14-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4963.445,
        "fvg_low": 4982.57,
        "fvg_high": 4987.63
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-19T15-45-00Z_long_order_block_reclaim",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4999.035,
        "ob_high": 5009.925,
        "displacement_high": 5016.44
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-19T16-15-00Z_long_breaker_continuation",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T16:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4963.445,
        "breaker_low": 4978.49,
        "breaker_high": 4995.39,
        "break_high": 4998.81
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-19T17-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4963.445,
        "impulse_high": 5010.44,
        "fib50": 4986.942499999999,
        "fib62": 4981.3031
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-19T18-30-00Z_short_order_block_reclaim",
      "date": "2026-02-19",
      "timestamp": "2026-02-19T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4979.735,
        "ob_high": 4988.925,
        "displacement_low": 4976.245
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-20T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4985.56,
        "impulse_high": 5001.535,
        "fib50": 4993.547500000001,
        "fib62": 4995.4645
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4987.0,
        "impulse_high": 5007.185,
        "fib50": 4997.092500000001,
        "fib62": 4994.6703
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T01-15-00Z_long_breaker_continuation",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4985.435,
        "breaker_low": 4987.955,
        "breaker_high": 4996.555,
        "break_high": 5008.24
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-20T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5011.89,
        "impulse_high": 5029.815,
        "fib50": 5020.8525,
        "fib62": 5018.7015
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4997.915,
        "impulse_high": 5012.185,
        "fib50": 5005.05,
        "fib62": 5003.3376
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T08-00-00Z_short_order_block_reclaim",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5012.775,
        "ob_high": 5018.1,
        "displacement_low": 5006.145
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-20T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5004.97,
        "impulse_high": 5020.09,
        "fib50": 5012.530000000001,
        "fib62": 5010.7156
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-00-00Z_long_breaker_continuation",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5013.84,
        "breaker_low": 5017.405,
        "breaker_high": 5024.005,
        "break_high": 5042.74
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5007.285,
        "impulse_high": 5026.675,
        "fib50": 5016.98,
        "fib62": 5014.6532
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-00-00Z_short_order_block_reclaim",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5013.84,
        "ob_high": 5024.005,
        "displacement_low": 5011.73
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5064.33,
        "fvg_low": 5045.02,
        "fvg_high": 5048.545
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-15-00Z_long_breaker_continuation",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5011.73,
        "breaker_low": 5022.74,
        "breaker_high": 5023.665,
        "break_high": 5042.74
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-30-00Z_long_order_block_reclaim",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5038.865,
        "ob_high": 5044.915,
        "displacement_high": 5054.41
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-20T15-45-00Z_short_order_block_reclaim",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5048.545,
        "ob_high": 5060.655,
        "displacement_low": 4990.585
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-20T16-45-00Z_long_breaker_continuation",
      "date": "2026-02-20",
      "timestamp": "2026-02-20T16:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4990.585,
        "breaker_low": 5054.65,
        "breaker_high": 5064.33,
        "break_high": 5060.655
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-23T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5117.815,
        "impulse_high": 5152.435,
        "fib50": 5135.125,
        "fib62": 5130.9706
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-23T00-15-00Z_long_order_block_reclaim",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5140.77,
        "ob_high": 5152.435,
        "displacement_high": 5159.585
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-23T07-45-00Z_short_order_block_reclaim",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T07:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5138.055,
        "ob_high": 5154.375,
        "displacement_low": 5125.19
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-23T11-00-00Z_long_order_block_reclaim",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5145.16,
        "ob_high": 5157.77,
        "displacement_high": 5163.655
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-23T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5149.77,
        "impulse_high": 5165.555,
        "fib50": 5157.6625,
        "fib62": 5155.768300000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-23T13-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5165.565,
        "fvg_low": 5156.79,
        "fvg_high": 5159.675
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-23T14-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 5141.615,
        "fvg_low": 5153.41,
        "fvg_high": 5156.03
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-23T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5164.945,
        "impulse_high": 5200.665,
        "fib50": 5182.805,
        "fib62": 5178.518599999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-23T17-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5175.805,
        "impulse_high": 5219.215,
        "fib50": 5197.51,
        "fib62": 5192.3008
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-23T21-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-23",
      "timestamp": "2026-02-23T21:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5224.665,
        "impulse_high": 5237.95,
        "fib50": 5231.3075,
        "fib62": 5229.7133
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5214.875,
        "impulse_high": 5226.025,
        "fib50": 5220.45,
        "fib62": 5219.112
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T02-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5145.135,
        "impulse_high": 5224.4,
        "fib50": 5184.7675,
        "fib62": 5194.2793
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5147.12,
        "impulse_high": 5173.58,
        "fib50": 5160.35,
        "fib62": 5163.5252
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5145.01,
        "impulse_high": 5164.73,
        "fib50": 5154.87,
        "fib62": 5157.2364
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5111.0,
        "impulse_high": 5158.87,
        "fib50": 5134.9349999999995,
        "fib62": 5140.6794
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T20-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5146.65,
        "impulse_high": 5170.165,
        "fib50": 5158.407499999999,
        "fib62": 5155.5857
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-24T21-15-00Z_long_order_block_reclaim",
      "date": "2026-02-24",
      "timestamp": "2026-02-24T21:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5146.65,
        "ob_high": 5155.95,
        "displacement_high": 5170.165
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-25T06-00-00Z_long_order_block_reclaim",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5179.985,
        "ob_high": 5185.065,
        "displacement_high": 5191.645
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-25T10-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5195.285,
        "fvg_low": 5184.935,
        "fvg_high": 5187.93
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-25T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5166.685,
        "impulse_high": 5182.685,
        "fib50": 5174.685,
        "fib62": 5172.765
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-25T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5158.645,
        "impulse_high": 5193.315,
        "fib50": 5175.98,
        "fib62": 5171.8196
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-25T15-15-00Z_long_breaker_continuation",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5158.645,
        "breaker_low": 5177.755,
        "breaker_high": 5181.15,
        "break_high": 5191.415
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-02-25T15-15-00Z_short_order_block_reclaim",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5183.675,
        "ob_high": 5191.15,
        "displacement_low": 5174.95
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-25T21-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-25",
      "timestamp": "2026-02-25T21:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5144.905,
        "impulse_high": 5190.7,
        "fib50": 5167.8025,
        "fib62": 5173.2979
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5182.865,
        "impulse_high": 5206.305,
        "fib50": 5194.585,
        "fib62": 5197.3978
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5182.175,
        "impulse_high": 5194.935,
        "fib50": 5188.555,
        "fib62": 5190.086200000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T08-30-00Z_short_order_block_reclaim",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5179.515,
        "ob_high": 5191.12,
        "displacement_low": 5175.47
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-26T09-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5175.47,
        "impulse_high": 5191.12,
        "fib50": 5183.295,
        "fib62": 5185.173
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5165.75,
        "impulse_high": 5179.595,
        "fib50": 5172.672500000001,
        "fib62": 5174.3339000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T13-00-00Z_short_order_block_reclaim",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5171.79,
        "ob_high": 5175.53,
        "displacement_low": 5161.05
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-26T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5130.235,
        "impulse_high": 5172.585,
        "fib50": 5151.41,
        "fib62": 5156.492
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-26T17-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-26",
      "timestamp": "2026-02-26T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5140.73,
        "impulse_high": 5192.955,
        "fib50": 5166.8425,
        "fib62": 5160.5755
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-27T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5184.905,
        "impulse_high": 5200.755,
        "fib50": 5192.83,
        "fib62": 5194.732
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-27T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5170.115,
        "impulse_high": 5189.8,
        "fib50": 5179.9575,
        "fib62": 5182.3197
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-27T01-30-00Z_short_order_block_reclaim",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5185.285,
        "ob_high": 5195.03,
        "displacement_low": 5170.115
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-02-27T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5173.345,
        "impulse_high": 5194.79,
        "fib50": 5184.0675,
        "fib62": 5181.4941
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-27T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5181.58,
        "impulse_high": 5195.035,
        "fib50": 5188.3075,
        "fib62": 5186.6929
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-02-27T09-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T09:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5182.815,
        "fvg_low": 5176.99,
        "fvg_high": 5177.865
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-02-27T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-02-27",
      "timestamp": "2026-02-27T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5186.895,
        "impulse_high": 5240.825,
        "fib50": 5213.860000000001,
        "fib62": 5207.3884
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-02T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-02",
      "timestamp": "2026-03-02T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5353.075,
        "impulse_high": 5394.005,
        "fib50": 5373.54,
        "fib62": 5368.6284
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-02T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-02",
      "timestamp": "2026-03-02T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5385.035,
        "impulse_high": 5419.66,
        "fib50": 5402.3475,
        "fib62": 5398.1925
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-02T08-45-00Z_short_order_block_reclaim",
      "date": "2026-03-02",
      "timestamp": "2026-03-02T08:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5402.45,
        "ob_high": 5416.165,
        "displacement_low": 5396.83
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-02T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-02",
      "timestamp": "2026-03-02T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5306.9,
        "impulse_high": 5395.375,
        "fib50": 5351.1375,
        "fib62": 5361.7545
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-02T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-02",
      "timestamp": "2026-03-02T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5282.16,
        "impulse_high": 5311.925,
        "fib50": 5297.0425,
        "fib62": 5300.6143
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5338.02,
        "impulse_high": 5378.65,
        "fib50": 5358.335,
        "fib62": 5363.2106
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T02-00-00Z_long_order_block_reclaim",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5346.05,
        "ob_high": 5359.755,
        "displacement_high": 5372.13
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-03T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5305.1,
        "impulse_high": 5359.72,
        "fib50": 5332.41,
        "fib62": 5338.964400000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T09-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5225.57,
        "impulse_high": 5304.155,
        "fib50": 5264.862499999999,
        "fib62": 5274.2927
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T10-00-00Z_short_order_block_reclaim",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5284.615,
        "ob_high": 5304.155,
        "displacement_low": 5225.57
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-03T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5110.505,
        "impulse_high": 5264.17,
        "fib50": 5187.3375,
        "fib62": 5205.7773
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5016.125,
        "impulse_high": 5146.31,
        "fib50": 5081.217500000001,
        "fib62": 5096.8397
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-03T19-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-03-03",
      "timestamp": "2026-03-03T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5149.055,
        "fvg_low": 5121.36,
        "fvg_high": 5127.105
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-04T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5142.485,
        "impulse_high": 5178.82,
        "fib50": 5160.6525,
        "fib62": 5156.2923
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-04T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5154.07,
        "impulse_high": 5181.125,
        "fib50": 5167.5975,
        "fib62": 5170.8441
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-04T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5117.72,
        "impulse_high": 5160.095,
        "fib50": 5138.9075,
        "fib62": 5143.9925
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-04T10-30-00Z_long_order_block_reclaim",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5175.995,
        "ob_high": 5185.07,
        "displacement_high": 5198.325
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-04T13-00-00Z_short_order_block_reclaim",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5192.21,
        "ob_high": 5206.265,
        "displacement_low": 5174.42
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-04T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5170.99,
        "impulse_high": 5196.52,
        "fib50": 5183.755,
        "fib62": 5180.6914
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-04T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5138.98,
        "impulse_high": 5185.33,
        "fib50": 5162.155,
        "fib62": 5167.717
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-04T15-30-00Z_short_order_block_reclaim",
      "date": "2026-03-04",
      "timestamp": "2026-03-04T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5163.225,
        "ob_high": 5185.33,
        "displacement_low": 5138.98
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-05T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5171.895,
        "impulse_high": 5188.32,
        "fib50": 5180.1075,
        "fib62": 5178.1365000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T03-00-00Z_long_order_block_reclaim",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5174.455,
        "ob_high": 5187.325,
        "displacement_high": 5192.62
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-05T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5148.41,
        "impulse_high": 5174.215,
        "fib50": 5161.3125,
        "fib62": 5164.4091
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5140.31,
        "impulse_high": 5168.95,
        "fib50": 5154.63,
        "fib62": 5151.193200000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T08-30-00Z_short_order_block_reclaim",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5158.8,
        "ob_high": 5166.425,
        "displacement_low": 5141.79
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-05T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5143.81,
        "impulse_high": 5170.25,
        "fib50": 5157.030000000001,
        "fib62": 5153.8572
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5081.23,
        "impulse_high": 5164.11,
        "fib50": 5122.67,
        "fib62": 5132.615599999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5090.54,
        "impulse_high": 5123.765,
        "fib50": 5107.1525,
        "fib62": 5111.1395
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5060.625,
        "impulse_high": 5119.965,
        "fib50": 5090.295,
        "fib62": 5097.4158
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-05T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-05",
      "timestamp": "2026-03-05T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5060.325,
        "impulse_high": 5104.76,
        "fib50": 5082.5425,
        "fib62": 5087.8747
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5085.79,
        "impulse_high": 5144.05,
        "fib50": 5114.92,
        "fib62": 5107.9288
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T05-45-00Z_short_order_block_reclaim",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T05:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5122.94,
        "ob_high": 5130.38,
        "displacement_low": 5119.14
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-06T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5083.33,
        "impulse_high": 5103.89,
        "fib50": 5093.610000000001,
        "fib62": 5096.0772
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5063.215,
        "impulse_high": 5099.735,
        "fib50": 5081.475,
        "fib62": 5085.8574
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T13-45-00Z_long_breaker_continuation",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5063.215,
        "breaker_low": 5081.285,
        "breaker_high": 5087.255,
        "break_high": 5113.9
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-06T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5080.905,
        "impulse_high": 5109.57,
        "fib50": 5095.237499999999,
        "fib62": 5091.7977
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T15-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5127.96,
        "impulse_high": 5171.89,
        "fib50": 5149.925,
        "fib62": 5144.6534
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-06T19-15-00Z_long_order_block_reclaim",
      "date": "2026-03-06",
      "timestamp": "2026-03-06T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5156.87,
        "ob_high": 5167.875,
        "displacement_high": 5171.405
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-08T22-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-08",
      "timestamp": "2026-03-08T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5150.99,
        "impulse_high": 5170.59,
        "fib50": 5160.79,
        "fib62": 5158.438
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-08T22-00-00Z_long_order_block_reclaim",
      "date": "2026-03-08",
      "timestamp": "2026-03-08T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5150.695,
        "ob_high": 5160.815,
        "displacement_high": 5167.63
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-08T23-15-00Z_short_order_block_reclaim",
      "date": "2026-03-08",
      "timestamp": "2026-03-08T23:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5104.345,
        "ob_high": 5134.605,
        "displacement_low": 5093.745
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5044.14,
        "impulse_high": 5105.53,
        "fib50": 5074.835,
        "fib62": 5082.2018
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5028.54,
        "impulse_high": 5081.36,
        "fib50": 5054.95,
        "fib62": 5061.2883999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T00-30-00Z_short_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5054.25,
        "ob_high": 5080.39,
        "displacement_low": 5028.54
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 5015.045,
        "fvg_low": 5057.91,
        "fvg_high": 5070.055
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-09T02-00-00Z_short_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5095.045,
        "ob_high": 5107.105,
        "displacement_low": 5044.14
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T02-15-00Z_long_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T02:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5065.35,
        "ob_high": 5082.545,
        "displacement_high": 5095.325
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5091.915,
        "impulse_high": 5140.79,
        "fib50": 5116.3525,
        "fib62": 5110.4875
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T06-45-00Z_long_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T06:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5087.3,
        "ob_high": 5104.605,
        "displacement_high": 5121.51
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5097.22,
        "impulse_high": 5129.85,
        "fib50": 5113.535,
        "fib62": 5117.4506
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T09-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5132.765,
        "fvg_low": 5107.53,
        "fvg_high": 5112.395
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-09T12-15-00Z_short_breaker_continuation",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 5132.765,
        "breaker_low": 5102.655,
        "breaker_high": 5125.155,
        "break_low": 5087.07
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-09T13-45-00Z_short_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5084.795,
        "ob_high": 5098.51,
        "displacement_low": 5074.3
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5067.42,
        "impulse_high": 5111.52,
        "fib50": 5089.47,
        "fib62": 5094.762000000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T14-45-00Z_long_breaker_continuation",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T14:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5060.595,
        "breaker_low": 5074.44,
        "breaker_high": 5088.695,
        "break_high": 5112.505
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-09T15-00-00Z_long_breaker_continuation",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5067.42,
        "breaker_low": 5076.06,
        "breaker_high": 5084.885,
        "break_high": 5112.505
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-09T15-15-00Z_long_breaker_continuation",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T15:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5074.3,
        "breaker_low": 5094.755,
        "breaker_high": 5111.52,
        "break_high": 5112.505
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-09T19-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5118.375,
        "impulse_high": 5144.01,
        "fib50": 5131.1925,
        "fib62": 5128.1163
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-09T19-30-00Z_long_order_block_reclaim",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5118.63,
        "ob_high": 5130.625,
        "displacement_high": 5144.01
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-09T23-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-09",
      "timestamp": "2026-03-09T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5128.48,
        "impulse_high": 5153.285,
        "fib50": 5140.8825,
        "fib62": 5137.9059
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-10T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 5124.835,
        "fvg_low": 5139.365,
        "fvg_high": 5142.315
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-10T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5153.205,
        "impulse_high": 5186.455,
        "fib50": 5169.83,
        "fib62": 5165.84
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-10T06-00-00Z_long_order_block_reclaim",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5167.465,
        "ob_high": 5174.365,
        "displacement_high": 5179.35
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-10T08-00-00Z_long_breaker_continuation",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 5158.395,
        "breaker_low": 5174.925,
        "breaker_high": 5177.69,
        "break_high": 5181.1
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-10T10-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5165.675,
        "impulse_high": 5181.755,
        "fib50": 5173.715,
        "fib62": 5171.7854
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-10T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5186.005,
        "impulse_high": 5228.925,
        "fib50": 5207.465,
        "fib62": 5202.3146
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-10T18-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-10",
      "timestamp": "2026-03-10T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5203.285,
        "impulse_high": 5228.78,
        "fib50": 5216.032499999999,
        "fib62": 5212.9731
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-11T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5186.66,
        "impulse_high": 5215.745,
        "fib50": 5201.202499999999,
        "fib62": 5197.7123
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-11T02-00-00Z_long_order_block_reclaim",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5186.66,
        "ob_high": 5198.34,
        "displacement_high": 5215.745
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-11T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5201.945,
        "impulse_high": 5220.64,
        "fib50": 5211.2925,
        "fib62": 5209.0491
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-11T06-45-00Z_long_order_block_reclaim",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T06:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5195.715,
        "ob_high": 5201.83,
        "displacement_high": 5210.51
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-11T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5181.02,
        "impulse_high": 5198.695,
        "fib50": 5189.8575,
        "fib62": 5191.9785
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-11T12-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 5197.175,
        "fvg_low": 5180.955,
        "fvg_high": 5188.0
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-11T13-00-00Z_short_breaker_continuation",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 5197.175,
        "breaker_low": 5173.265,
        "breaker_high": 5191.09,
        "break_low": 5175.87
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-11T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5166.835,
        "impulse_high": 5197.175,
        "fib50": 5182.005,
        "fib62": 5185.6458
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-11T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-11",
      "timestamp": "2026-03-11T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5129.83,
        "impulse_high": 5170.085,
        "fib50": 5149.9575,
        "fib62": 5154.7881
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5133.295,
        "impulse_high": 5157.94,
        "fib50": 5145.6175,
        "fib62": 5148.5749
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5165.58,
        "impulse_high": 5178.32,
        "fib50": 5171.95,
        "fib62": 5173.4788
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T05-30-00Z_short_order_block_reclaim",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5150.38,
        "ob_high": 5154.02,
        "displacement_low": 5143.825
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-12T08-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5167.95,
        "impulse_high": 5185.23,
        "fib50": 5176.59,
        "fib62": 5174.5163999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 5168.68,
        "impulse_high": 5185.875,
        "fib50": 5177.2775,
        "fib62": 5175.2141
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5146.085,
        "impulse_high": 5171.385,
        "fib50": 5158.735000000001,
        "fib62": 5161.771
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5109.85,
        "impulse_high": 5144.99,
        "fib50": 5127.42,
        "fib62": 5131.6368
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5102.615,
        "impulse_high": 5120.2,
        "fib50": 5111.407499999999,
        "fib62": 5113.517699999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T20-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5071.44,
        "impulse_high": 5090.925,
        "fib50": 5081.1825,
        "fib62": 5083.5207
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-12T22-00-00Z_short_order_block_reclaim",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5083.71,
        "ob_high": 5090.925,
        "displacement_low": 5071.44
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-12T22-30-00Z_long_order_block_reclaim",
      "date": "2026-03-12",
      "timestamp": "2026-03-12T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5077.79,
        "ob_high": 5086.72,
        "displacement_high": 5095.545
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-13T02-15-00Z_long_order_block_reclaim",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T02:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5111.43,
        "ob_high": 5121.795,
        "displacement_high": 5124.535
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-13T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5103.76,
        "impulse_high": 5118.175,
        "fib50": 5110.967500000001,
        "fib62": 5112.6973
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-13T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5061.72,
        "impulse_high": 5085.465,
        "fib50": 5073.592500000001,
        "fib62": 5076.4419
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-13T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5092.065,
        "impulse_high": 5107.995,
        "fib50": 5100.03,
        "fib62": 5098.118399999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-13T13-30-00Z_long_order_block_reclaim",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5092.065,
        "ob_high": 5096.655,
        "displacement_high": 5107.995
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-13T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 5035.535,
        "impulse_high": 5091.905,
        "fib50": 5063.719999999999,
        "fib62": 5070.484399999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-13T16-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-13",
      "timestamp": "2026-03-13T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 5031.015,
        "impulse_high": 5068.39,
        "fib50": 5049.7025,
        "fib62": 5054.1875
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-15T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-15",
      "timestamp": "2026-03-15T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4967.775,
        "impulse_high": 5026.335,
        "fib50": 4997.055,
        "fib62": 5004.0822
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-16T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4983.7,
        "impulse_high": 5026.66,
        "fib50": 5005.18,
        "fib62": 5010.3351999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-16T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4972.535,
        "impulse_high": 4991.805,
        "fib50": 4982.17,
        "fib62": 4984.4824
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-16T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4992.78,
        "impulse_high": 5020.04,
        "fib50": 5006.41,
        "fib62": 5009.6812
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-16T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4994.55,
        "impulse_high": 5024.935,
        "fib50": 5009.7425,
        "fib62": 5006.0963
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-16T16-30-00Z_short_order_block_reclaim",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4985.745,
        "ob_high": 4998.8,
        "displacement_low": 4978.25
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-16T22-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-16",
      "timestamp": "2026-03-16T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4990.045,
        "impulse_high": 5008.185,
        "fib50": 4999.115,
        "fib62": 4996.9382000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-17T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4994.935,
        "fvg_low": 5006.535,
        "fvg_high": 5007.625
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-17T09-15-00Z_short_order_block_reclaim",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T09:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5018.685,
        "ob_high": 5025.61,
        "displacement_low": 5013.265
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-17T12-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4999.485,
        "impulse_high": 5020.63,
        "fib50": 5010.0575,
        "fib62": 5007.5201
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-17T13-45-00Z_long_order_block_reclaim",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5010.505,
        "ob_high": 5019.67,
        "displacement_high": 5031.59
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-17T16-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4993.905,
        "impulse_high": 5017.65,
        "fib50": 5005.7775,
        "fib62": 5008.626899999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-17T17-00-00Z_short_order_block_reclaim",
      "date": "2026-03-17",
      "timestamp": "2026-03-17T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 5006.33,
        "ob_high": 5017.65,
        "displacement_low": 4993.905
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-18T00-15-00Z_long_breaker_continuation",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4993.39,
        "breaker_low": 4996.555,
        "breaker_high": 5003.615,
        "break_high": 5008.45
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-18T00-30-00Z_long_breaker_continuation",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4995.69,
        "breaker_low": 5002.02,
        "breaker_high": 5002.035,
        "break_high": 5008.45
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-18T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4991.455,
        "impulse_high": 5009.62,
        "fib50": 5000.5375,
        "fib62": 5002.7173
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T03-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4990.615,
        "impulse_high": 5004.345,
        "fib50": 4997.48,
        "fib62": 4999.1276
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T05-00-00Z_short_order_block_reclaim",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4990.495,
        "ob_high": 4993.66,
        "displacement_low": 4981.83
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-18T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4996.19,
        "impulse_high": 5011.07,
        "fib50": 5003.629999999999,
        "fib62": 5001.8444
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T07-30-00Z_long_order_block_reclaim",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4994.77,
        "ob_high": 5002.845,
        "displacement_high": 5009.335
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-18T10-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4980.985,
        "impulse_high": 4992.27,
        "fib50": 4986.6275000000005,
        "fib62": 4987.9817
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4958.83,
        "impulse_high": 4987.685,
        "fib50": 4973.2575,
        "fib62": 4976.7201000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4946.475,
        "impulse_high": 4974.135,
        "fib50": 4960.305,
        "fib62": 4963.6242
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T11-30-00Z_short_order_block_reclaim",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4950.48,
        "ob_high": 4970.625,
        "displacement_low": 4946.475
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-18T13-30-00Z_short_order_block_reclaim",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4870.87,
        "ob_high": 4891.705,
        "displacement_low": 4849.645
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-18T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4870.87,
        "impulse_high": 4902.66,
        "fib50": 4886.764999999999,
        "fib62": 4890.5797999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-18T22-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-18",
      "timestamp": "2026-03-18T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4808.985,
        "impulse_high": 4848.94,
        "fib50": 4828.9625,
        "fib62": 4833.7571
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4827.125,
        "impulse_high": 4846.635,
        "fib50": 4836.88,
        "fib62": 4839.2212
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4747.72,
        "impulse_high": 4820.26,
        "fib50": 4783.99,
        "fib62": 4792.6948
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T08-45-00Z_short_order_block_reclaim",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T08:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4713.325,
        "ob_high": 4736.58,
        "displacement_low": 4686.885
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-19T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4531.275,
        "impulse_high": 4617.95,
        "fib50": 4574.612499999999,
        "fib62": 4585.0135
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4602.99,
        "impulse_high": 4654.25,
        "fib50": 4628.62,
        "fib62": 4634.7712
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4584.275,
        "impulse_high": 4649.31,
        "fib50": 4616.7925,
        "fib62": 4624.5967
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-19T14-30-00Z_long_order_block_reclaim",
      "date": "2026-03-19",
      "timestamp": "2026-03-19T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4546.525,
        "ob_high": 4583.335,
        "displacement_high": 4621.305
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-20T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4636.27,
        "impulse_high": 4666.465,
        "fib50": 4651.3675,
        "fib62": 4654.990900000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-20T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4661.03,
        "impulse_high": 4699.53,
        "fib50": 4680.28,
        "fib62": 4675.66
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-20T05-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4693.225,
        "impulse_high": 4735.925,
        "fib50": 4714.575000000001,
        "fib62": 4709.451
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-20T11-00-00Z_short_order_block_reclaim",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4649.57,
        "ob_high": 4670.135,
        "displacement_low": 4638.195
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-20T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4551.37,
        "impulse_high": 4622.74,
        "fib50": 4587.055,
        "fib62": 4595.6194
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-20T17-30-00Z_long_order_block_reclaim",
      "date": "2026-03-20",
      "timestamp": "2026-03-20T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4544.5,
        "ob_high": 4562.595,
        "displacement_high": 4588.545
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-22T22-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-22",
      "timestamp": "2026-03-22T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4477.54,
        "impulse_high": 4557.44,
        "fib50": 4517.49,
        "fib62": 4527.0779999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-22T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-22",
      "timestamp": "2026-03-22T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4489.85,
        "impulse_high": 4526.675,
        "fib50": 4508.262500000001,
        "fib62": 4512.681500000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-23T00-00-00Z_short_order_block_reclaim",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4472.42,
        "ob_high": 4491.105,
        "displacement_low": 4452.08
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-23T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4404.835,
        "impulse_high": 4473.16,
        "fib50": 4438.9974999999995,
        "fib62": 4447.1965
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-23T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4099.125,
        "impulse_high": 4222.52,
        "fib50": 4160.8225,
        "fib62": 4175.6299
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-23T07-30-00Z_short_order_block_reclaim",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4163.07,
        "ob_high": 4230.11,
        "displacement_low": 4126.63
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-23T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4238.86,
        "impulse_high": 4310.52,
        "fib50": 4274.6900000000005,
        "fib62": 4283.2892
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-23T09-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4308.625,
        "fvg_low": 4257.32,
        "fvg_high": 4267.755
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-23T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4373.775,
        "impulse_high": 4492.925,
        "fib50": 4433.35,
        "fib62": 4419.052
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-23T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-23",
      "timestamp": "2026-03-23T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4350.63,
        "impulse_high": 4456.24,
        "fib50": 4403.4349999999995,
        "fib62": 4416.1082
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4359.74,
        "impulse_high": 4415.7,
        "fib50": 4387.719999999999,
        "fib62": 4381.0048
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T01-15-00Z_short_order_block_reclaim",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4343.37,
        "ob_high": 4387.035,
        "displacement_low": 4328.49
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-24T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4307.99,
        "impulse_high": 4368.645,
        "fib50": 4338.3175,
        "fib62": 4345.5961
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T05-45-00Z_long_order_block_reclaim",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T05:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4333.905,
        "ob_high": 4346.735,
        "displacement_high": 4374.06
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-24T08-15-00Z_long_order_block_reclaim",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T08:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4374.49,
        "ob_high": 4397.13,
        "displacement_high": 4405.26
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-24T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4391.285,
        "impulse_high": 4421.165,
        "fib50": 4406.225,
        "fib62": 4409.8106
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T12-45-00Z_short_breaker_continuation",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4442.245,
        "breaker_low": 4374.74,
        "breaker_high": 4438.62,
        "break_low": 4391.285
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-24T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4362.065,
        "impulse_high": 4406.855,
        "fib50": 4384.459999999999,
        "fib62": 4389.8348
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T14-30-00Z_short_breaker_continuation",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4441.73,
        "breaker_low": 4418.715,
        "breaker_high": 4427.89,
        "break_low": 4391.285
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-24T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4380.855,
        "impulse_high": 4415.115,
        "fib50": 4397.985,
        "fib62": 4393.873799999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-24T17-45-00Z_short_order_block_reclaim",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T17:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4394.06,
        "ob_high": 4406.015,
        "displacement_low": 4375.195
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-24T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-24",
      "timestamp": "2026-03-24T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4388.375,
        "impulse_high": 4426.69,
        "fib50": 4407.532499999999,
        "fib62": 4412.1303
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4544.885,
        "impulse_high": 4563.34,
        "fib50": 4554.1125,
        "fib62": 4551.8979
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T08-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4536.05,
        "fvg_low": 4550.39,
        "fvg_high": 4557.385
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-25T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4536.05,
        "impulse_high": 4568.235,
        "fib50": 4552.1425,
        "fib62": 4548.2803
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4556.21,
        "impulse_high": 4583.06,
        "fib50": 4569.635,
        "fib62": 4566.4130000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T13-00-00Z_long_breaker_continuation",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4527.89,
        "breaker_low": 4550.73,
        "breaker_high": 4555.64,
        "break_high": 4568.235
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-25T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4541.3,
        "impulse_high": 4571.375,
        "fib50": 4556.3375,
        "fib62": 4552.7285
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T19-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4486.59,
        "impulse_high": 4539.74,
        "fib50": 4513.165,
        "fib62": 4519.543
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-25T22-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-25",
      "timestamp": "2026-03-25T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4494.7,
        "impulse_high": 4525.12,
        "fib50": 4509.91,
        "fib62": 4513.5604
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-26T03-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4505.675,
        "impulse_high": 4530.63,
        "fib50": 4518.1525,
        "fib62": 4521.1471
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-26T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4425.28,
        "impulse_high": 4459.455,
        "fib50": 4442.3675,
        "fib62": 4446.4685
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-26T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4419.34,
        "impulse_high": 4452.06,
        "fib50": 4435.700000000001,
        "fib62": 4439.6264
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-26T20-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4386.59,
        "impulse_high": 4442.785,
        "fib50": 4414.6875,
        "fib62": 4421.4309
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-26T20-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4351.355,
        "fvg_low": 4380.17,
        "fvg_high": 4380.26
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-03-26T20-30-00Z_long_breaker_continuation",
      "date": "2026-03-26",
      "timestamp": "2026-03-26T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4351.355,
        "breaker_low": 4364.075,
        "breaker_high": 4414.29,
        "break_high": 4402.32
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-03-27T07-30-00Z_long_order_block_reclaim",
      "date": "2026-03-27",
      "timestamp": "2026-03-27T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4440.74,
        "ob_high": 4447.18,
        "displacement_high": 4475.3
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-27T09-00-00Z_short_order_block_reclaim",
      "date": "2026-03-27",
      "timestamp": "2026-03-27T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4428.83,
        "ob_high": 4440.13,
        "displacement_low": 4424.025
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-27T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-27",
      "timestamp": "2026-03-27T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4410.56,
        "impulse_high": 4430.605,
        "fib50": 4420.5825,
        "fib62": 4422.9879
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-27T11-45-00Z_short_order_block_reclaim",
      "date": "2026-03-27",
      "timestamp": "2026-03-27T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4424.0,
        "ob_high": 4431.61,
        "displacement_low": 4412.49
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-27T15-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-27",
      "timestamp": "2026-03-27T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4501.78,
        "impulse_high": 4555.63,
        "fib50": 4528.705,
        "fib62": 4522.2429999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4443.945,
        "impulse_high": 4472.43,
        "fib50": 4458.1875,
        "fib62": 4461.6057
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T03-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4479.095,
        "impulse_high": 4518.175,
        "fib50": 4498.635,
        "fib62": 4493.9454000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T03-45-00Z_long_order_block_reclaim",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T03:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4479.015,
        "ob_high": 4496.38,
        "displacement_high": 4508.93
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-30T06-45-00Z_long_order_block_reclaim",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T06:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4526.89,
        "ob_high": 4535.665,
        "displacement_high": 4541.965
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-30T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4538.635,
        "impulse_high": 4580.73,
        "fib50": 4559.6825,
        "fib62": 4554.6311
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4525.645,
        "impulse_high": 4548.575,
        "fib50": 4537.110000000001,
        "fib62": 4534.3584
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4517.615,
        "impulse_high": 4541.545,
        "fib50": 4529.58,
        "fib62": 4526.7083999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-30T16-30-00Z_long_order_block_reclaim",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4524.7,
        "ob_high": 4534.285,
        "displacement_high": 4554.025
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-30T19-30-00Z_short_order_block_reclaim",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4512.59,
        "ob_high": 4519.58,
        "displacement_low": 4498.505
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-30T23-15-00Z_short_order_block_reclaim",
      "date": "2026-03-30",
      "timestamp": "2026-03-30T23:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4508.625,
        "ob_high": 4515.525,
        "displacement_low": 4492.8
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-31T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4577.435,
        "impulse_high": 4619.255,
        "fib50": 4598.345,
        "fib62": 4593.3266
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-31T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4532.15,
        "impulse_high": 4585.665,
        "fib50": 4558.907499999999,
        "fib62": 4552.4857
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-31T03-30-00Z_long_order_block_reclaim",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4532.15,
        "ob_high": 4550.865,
        "displacement_high": 4585.665
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-31T05-15-00Z_short_order_block_reclaim",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T05:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4560.985,
        "ob_high": 4569.39,
        "displacement_low": 4547.9
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-03-31T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4552.005,
        "impulse_high": 4566.105,
        "fib50": 4559.055,
        "fib62": 4557.363
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-03-31T11-00-00Z_short_order_block_reclaim",
      "date": "2026-03-31",
      "timestamp": "2026-03-31T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4555.55,
        "ob_high": 4561.115,
        "displacement_low": 4529.545
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-01T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4693.52,
        "impulse_high": 4722.125,
        "fib50": 4707.8225,
        "fib62": 4704.3899
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-01T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4681.63,
        "impulse_high": 4699.975,
        "fib50": 4690.8025,
        "fib62": 4688.6011
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-01T01-45-00Z_short_order_block_reclaim",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4692.895,
        "ob_high": 4708.59,
        "displacement_low": 4681.225
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-01T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4702.18,
        "impulse_high": 4733.235,
        "fib50": 4717.7075,
        "fib62": 4713.9809000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-01T07-45-00Z_long_order_block_reclaim",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T07:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4702.18,
        "ob_high": 4713.01,
        "displacement_high": 4733.235
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-01T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4710.445,
        "impulse_high": 4736.185,
        "fib50": 4723.3150000000005,
        "fib62": 4720.2262
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-01T18-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4735.18,
        "impulse_high": 4768.87,
        "fib50": 4752.025,
        "fib62": 4747.9822
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-01T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-01",
      "timestamp": "2026-04-01T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4773.795,
        "impulse_high": 4799.465,
        "fib50": 4786.63,
        "fib62": 4783.5496
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-02T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-02",
      "timestamp": "2026-04-02T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4751.98,
        "impulse_high": 4776.015,
        "fib50": 4763.9974999999995,
        "fib62": 4761.1133
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-02T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-02",
      "timestamp": "2026-04-02T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4585.755,
        "impulse_high": 4679.155,
        "fib50": 4632.455,
        "fib62": 4643.663
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-02T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-02",
      "timestamp": "2026-04-02T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4592.895,
        "impulse_high": 4617.955,
        "fib50": 4605.425,
        "fib62": 4608.4322
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-02T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-02",
      "timestamp": "2026-04-02T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4600.285,
        "impulse_high": 4627.055,
        "fib50": 4613.67,
        "fib62": 4616.8824
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-06T00-30-00Z_short_order_block_reclaim",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4607.035,
        "ob_high": 4626.67,
        "displacement_low": 4600.85
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-06T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4609.39,
        "impulse_high": 4651.415,
        "fib50": 4630.4025,
        "fib62": 4635.4455
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-06T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4620.605,
        "impulse_high": 4643.24,
        "fib50": 4631.9225,
        "fib62": 4629.2063
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-06T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4623.815,
        "impulse_high": 4671.73,
        "fib50": 4647.772499999999,
        "fib62": 4642.0226999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-06T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4660.79,
        "impulse_high": 4681.87,
        "fib50": 4671.33,
        "fib62": 4668.8004
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-06T23-45-00Z_short_order_block_reclaim",
      "date": "2026-04-06",
      "timestamp": "2026-04-06T23:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4657.085,
        "ob_high": 4661.31,
        "displacement_low": 4653.39
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-07T02-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4616.53,
        "impulse_high": 4662.555,
        "fib50": 4639.5425,
        "fib62": 4645.0655
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-07T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4630.59,
        "impulse_high": 4661.36,
        "fib50": 4645.975,
        "fib62": 4649.6674
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-07T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4644.395,
        "impulse_high": 4691.225,
        "fib50": 4667.81,
        "fib62": 4662.1904
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-07T13-45-00Z_short_order_block_reclaim",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4650.625,
        "ob_high": 4663.08,
        "displacement_low": 4635.625
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-07T14-15-00Z_short_order_block_reclaim",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4637.195,
        "ob_high": 4654.23,
        "displacement_low": 4607.63
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-07T18-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4660.18,
        "impulse_high": 4686.745,
        "fib50": 4673.4625,
        "fib62": 4670.2747
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-07T19-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-07",
      "timestamp": "2026-04-07T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4660.735,
        "impulse_high": 4703.015,
        "fib50": 4681.875,
        "fib62": 4676.8014
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-08T00-30-00Z_long_order_block_reclaim",
      "date": "2026-04-08",
      "timestamp": "2026-04-08T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4804.535,
        "ob_high": 4817.835,
        "displacement_high": 4836.505
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-08T01-45-00Z_short_order_block_reclaim",
      "date": "2026-04-08",
      "timestamp": "2026-04-08T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4806.14,
        "ob_high": 4825.325,
        "displacement_low": 4792.13
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-08T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-08",
      "timestamp": "2026-04-08T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4783.695,
        "impulse_high": 4802.845,
        "fib50": 4793.27,
        "fib62": 4790.972
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-08T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-08",
      "timestamp": "2026-04-08T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4732.305,
        "impulse_high": 4770.145,
        "fib50": 4751.225,
        "fib62": 4755.7658
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-08T19-45-00Z_short_order_block_reclaim",
      "date": "2026-04-08",
      "timestamp": "2026-04-08T19:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4727.135,
        "ob_high": 4744.605,
        "displacement_low": 4717.32
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-09T00-15-00Z_short_order_block_reclaim",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4712.59,
        "ob_high": 4720.345,
        "displacement_low": 4698.725
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-09T01-30-00Z_long_order_block_reclaim",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4706.32,
        "ob_high": 4719.3,
        "displacement_high": 4722.065
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-09T02-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T02:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4733.04,
        "fvg_low": 4720.32,
        "fvg_high": 4725.54
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-04-09T05-30-00Z_long_order_block_reclaim",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4710.87,
        "ob_high": 4723.8,
        "displacement_high": 4726.575
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-09T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4705.98,
        "impulse_high": 4726.565,
        "fib50": 4716.272499999999,
        "fib62": 4718.7427
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-09T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4743.16,
        "impulse_high": 4757.665,
        "fib50": 4750.4125,
        "fib62": 4748.6719
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-09T12-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4759.87,
        "fvg_low": 4744.32,
        "fvg_high": 4750.91
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-04-09T14-30-00Z_long_order_block_reclaim",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4751.945,
        "ob_high": 4758.795,
        "displacement_high": 4777.085
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-09T16-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-09",
      "timestamp": "2026-04-09T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4778.28,
        "impulse_high": 4798.235,
        "fib50": 4788.2575,
        "fib62": 4785.8629
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T00-30-00Z_short_order_block_reclaim",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4758.67,
        "ob_high": 4764.41,
        "displacement_low": 4750.535
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-10T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4753.84,
        "impulse_high": 4763.5,
        "fib50": 4758.67,
        "fib62": 4757.5108
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T03-00-00Z_short_breaker_continuation",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4777.42,
        "breaker_low": 4760.36,
        "breaker_high": 4762.63,
        "break_low": 4750.535
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-10T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4742.32,
        "impulse_high": 4765.59,
        "fib50": 4753.955,
        "fib62": 4756.7474
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4751.885,
        "impulse_high": 4766.01,
        "fib50": 4758.9475,
        "fib62": 4760.6425
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T11-30-00Z_long_order_block_reclaim",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4753.38,
        "ob_high": 4759.775,
        "displacement_high": 4762.56
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-10T12-45-00Z_long_order_block_reclaim",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4759.845,
        "ob_high": 4771.41,
        "displacement_high": 4782.605
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-10T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4762.08,
        "impulse_high": 4782.605,
        "fib50": 4772.3425,
        "fib62": 4769.8795
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4767.35,
        "impulse_high": 4792.925,
        "fib50": 4780.137500000001,
        "fib62": 4777.0685
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-10T20-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-10",
      "timestamp": "2026-04-10T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4741.01,
        "impulse_high": 4760.125,
        "fib50": 4750.5675,
        "fib62": 4752.8613000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-12T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-12",
      "timestamp": "2026-04-12T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4644.595,
        "impulse_high": 4685.41,
        "fib50": 4665.0025000000005,
        "fib62": 4669.9003
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-12T23-45-00Z_short_order_block_reclaim",
      "date": "2026-04-12",
      "timestamp": "2026-04-12T23:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4666.045,
        "ob_high": 4685.41,
        "displacement_low": 4644.595
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-13T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4720.43,
        "impulse_high": 4736.475,
        "fib50": 4728.4525,
        "fib62": 4730.3779
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-13T11-00-00Z_short_breaker_continuation",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4740.03,
        "breaker_low": 4728.405,
        "breaker_high": 4732.365,
        "break_low": 4716.24
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-13T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4703.375,
        "impulse_high": 4722.43,
        "fib50": 4712.9025,
        "fib62": 4715.1891000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-13T14-15-00Z_long_breaker_continuation",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4703.375,
        "breaker_low": 4707.68,
        "breaker_high": 4712.15,
        "break_high": 4730.02
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-13T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4709.52,
        "impulse_high": 4731.37,
        "fib50": 4720.445,
        "fib62": 4723.067
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-13T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-13",
      "timestamp": "2026-04-13T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4700.565,
        "impulse_high": 4720.15,
        "fib50": 4710.3575,
        "fib62": 4712.7077
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4746.355,
        "impulse_high": 4759.8,
        "fib50": 4753.077499999999,
        "fib62": 4751.4641
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4761.425,
        "impulse_high": 4776.075,
        "fib50": 4768.75,
        "fib62": 4766.992
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T04-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4767.095,
        "impulse_high": 4777.085,
        "fib50": 4772.09,
        "fib62": 4770.8912
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4764.335,
        "impulse_high": 4782.965,
        "fib50": 4773.65,
        "fib62": 4771.4144
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T07-15-00Z_long_breaker_continuation",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T07:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4761.71,
        "breaker_low": 4765.57,
        "breaker_high": 4768.155,
        "break_high": 4777.305
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-14T07-15-00Z_short_order_block_reclaim",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T07:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4772.71,
        "ob_high": 4776.055,
        "displacement_low": 4763.375
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-14T11-15-00Z_short_order_block_reclaim",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T11:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4780.525,
        "ob_high": 4788.31,
        "displacement_low": 4751.22
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-14T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4771.185,
        "impulse_high": 4792.55,
        "fib50": 4781.8675,
        "fib62": 4779.3037
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4793.065,
        "impulse_high": 4810.885,
        "fib50": 4801.975,
        "fib62": 4799.8366
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4780.32,
        "impulse_high": 4803.79,
        "fib50": 4792.055,
        "fib62": 4789.2386
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-14T18-45-00Z_long_order_block_reclaim",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T18:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4824.95,
        "ob_high": 4832.065,
        "displacement_high": 4841.705
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-14T23-00-00Z_short_order_block_reclaim",
      "date": "2026-04-14",
      "timestamp": "2026-04-14T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4837.71,
        "ob_high": 4843.3,
        "displacement_low": 4833.195
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-15T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4828.335,
        "impulse_high": 4871.38,
        "fib50": 4849.8575,
        "fib62": 4844.6921
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-15T01-45-00Z_long_breaker_continuation",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4831.67,
        "breaker_low": 4837.315,
        "breaker_high": 4840.18,
        "break_high": 4850.88
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-15T02-15-00Z_long_breaker_continuation",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T02:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4828.625,
        "breaker_low": 4833.705,
        "breaker_high": 4836.505,
        "break_high": 4850.88
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-15T03-30-00Z_short_breaker_continuation",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4852.775,
        "breaker_low": 4828.335,
        "breaker_high": 4835.52,
        "break_low": 4827.285
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-15T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4805.56,
        "impulse_high": 4821.875,
        "fib50": 4813.717500000001,
        "fib62": 4811.7597000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-15T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4792.82,
        "impulse_high": 4819.565,
        "fib50": 4806.192499999999,
        "fib62": 4809.4019
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-15T14-00-00Z_long_order_block_reclaim",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4815.935,
        "ob_high": 4825.55,
        "displacement_high": 4830.31
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-15T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4808.57,
        "impulse_high": 4822.13,
        "fib50": 4815.35,
        "fib62": 4813.7228
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-15T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-15",
      "timestamp": "2026-04-15T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4797.705,
        "impulse_high": 4816.155,
        "fib50": 4806.93,
        "fib62": 4809.144
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4814.605,
        "impulse_high": 4826.795,
        "fib50": 4820.7,
        "fib62": 4819.2372
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4820.345,
        "impulse_high": 4837.81,
        "fib50": 4829.0775,
        "fib62": 4826.9817
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4807.615,
        "impulse_high": 4815.935,
        "fib50": 4811.775,
        "fib62": 4810.7766
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T06-30-00Z_short_order_block_reclaim",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4821.265,
        "ob_high": 4828.16,
        "displacement_low": 4814.46
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-16T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4814.99,
        "impulse_high": 4830.69,
        "fib50": 4822.84,
        "fib62": 4820.956
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4807.26,
        "impulse_high": 4822.07,
        "fib50": 4814.665,
        "fib62": 4816.4421999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4805.165,
        "impulse_high": 4817.62,
        "fib50": 4811.3925,
        "fib62": 4809.8979
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4784.73,
        "impulse_high": 4824.04,
        "fib50": 4804.385,
        "fib62": 4809.102199999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T15-00-00Z_short_breaker_continuation",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4823.14,
        "breaker_low": 4811.59,
        "breaker_high": 4822.28,
        "break_low": 4805.165
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-16T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4772.575,
        "impulse_high": 4800.865,
        "fib50": 4786.719999999999,
        "fib62": 4790.114799999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-16T15-00-00Z_short_order_block_reclaim",
      "date": "2026-04-16",
      "timestamp": "2026-04-16T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4812.645,
        "ob_high": 4824.04,
        "displacement_low": 4784.73
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-17T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-17",
      "timestamp": "2026-04-17T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4767.855,
        "impulse_high": 4795.675,
        "fib50": 4781.764999999999,
        "fib62": 4785.1034
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-17T02-00-00Z_short_breaker_continuation",
      "date": "2026-04-17",
      "timestamp": "2026-04-17T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4798.83,
        "breaker_low": 4792.62,
        "breaker_high": 4793.0,
        "break_low": 4785.965
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-17T09-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-17",
      "timestamp": "2026-04-17T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4784.46,
        "impulse_high": 4797.085,
        "fib50": 4790.7725,
        "fib62": 4789.2575
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-17T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-17",
      "timestamp": "2026-04-17T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4848.51,
        "impulse_high": 4882.12,
        "fib50": 4865.3150000000005,
        "fib62": 4861.2818
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-19T22-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-19",
      "timestamp": "2026-04-19T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4771.055,
        "impulse_high": 4794.97,
        "fib50": 4783.012500000001,
        "fib62": 4780.1427
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4736.83,
        "impulse_high": 4773.685,
        "fib50": 4755.2575,
        "fib62": 4759.6801000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T04-45-00Z_short_order_block_reclaim",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T04:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4791.67,
        "ob_high": 4795.845,
        "displacement_low": 4787.245
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-20T06-15-00Z_short_order_block_reclaim",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4785.42,
        "ob_high": 4789.54,
        "displacement_low": 4779.54
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-20T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4786.905,
        "impulse_high": 4798.97,
        "fib50": 4792.9375,
        "fib62": 4794.3853
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T12-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4787.9,
        "impulse_high": 4810.9,
        "fib50": 4799.4,
        "fib62": 4796.639999999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4799.695,
        "impulse_high": 4825.905,
        "fib50": 4812.799999999999,
        "fib62": 4809.654799999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4792.615,
        "impulse_high": 4827.695,
        "fib50": 4810.155,
        "fib62": 4814.3646
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-20T19-15-00Z_long_order_block_reclaim",
      "date": "2026-04-20",
      "timestamp": "2026-04-20T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4813.245,
        "ob_high": 4816.515,
        "displacement_high": 4821.425
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-21T06-00-00Z_short_order_block_reclaim",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4786.655,
        "ob_high": 4797.145,
        "displacement_low": 4783.28
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-21T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4775.49,
        "impulse_high": 4790.375,
        "fib50": 4782.9325,
        "fib62": 4784.7187
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-21T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4779.205,
        "impulse_high": 4796.995,
        "fib50": 4788.1,
        "fib62": 4790.2348
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-21T13-30-00Z_short_breaker_continuation",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4798.03,
        "breaker_low": 4791.88,
        "breaker_high": 4793.205,
        "break_low": 4775.49
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-21T13-45-00Z_short_breaker_continuation",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4795.1,
        "breaker_low": 4783.27,
        "breaker_high": 4783.735,
        "break_low": 4775.49
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-21T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4723.77,
        "impulse_high": 4775.265,
        "fib50": 4749.5175,
        "fib62": 4755.696900000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-21T20-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4668.62,
        "impulse_high": 4714.89,
        "fib50": 4691.755,
        "fib62": 4697.307400000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-21T20-15-00Z_short_order_block_reclaim",
      "date": "2026-04-21",
      "timestamp": "2026-04-21T20:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4704.995,
        "ob_high": 4715.06,
        "displacement_low": 4668.62
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-22T06-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-22",
      "timestamp": "2026-04-22T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4752.32,
        "impulse_high": 4771.77,
        "fib50": 4762.045,
        "fib62": 4759.711
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-22T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-22",
      "timestamp": "2026-04-22T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4753.805,
        "impulse_high": 4760.415,
        "fib50": 4757.110000000001,
        "fib62": 4756.3168000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-22T12-45-00Z_short_order_block_reclaim",
      "date": "2026-04-22",
      "timestamp": "2026-04-22T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4747.255,
        "ob_high": 4760.305,
        "displacement_low": 4745.62
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-22T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-22",
      "timestamp": "2026-04-22T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4729.99,
        "impulse_high": 4744.845,
        "fib50": 4737.4175,
        "fib62": 4739.2001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-22T20-00-00Z_long_order_block_reclaim",
      "date": "2026-04-22",
      "timestamp": "2026-04-22T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4729.985,
        "ob_high": 4735.985,
        "displacement_high": 4739.52
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-23T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4732.685,
        "impulse_high": 4742.305,
        "fib50": 4737.495000000001,
        "fib62": 4738.6494
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-23T00-15-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4694.135,
        "fvg_low": 4728.275,
        "fvg_high": 4741.035
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-04-23T01-00-00Z_long_breaker_continuation",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4694.135,
        "breaker_low": 4699.47,
        "breaker_high": 4742.37,
        "break_high": 4742.305
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-23T01-15-00Z_long_breaker_continuation",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4723.645,
        "breaker_low": 4726.12,
        "breaker_high": 4728.515,
        "break_high": 4745.595
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-23T01-15-00Z_long_order_block_reclaim",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4698.72,
        "ob_high": 4728.275,
        "displacement_high": 4742.37
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-23T01-15-00Z_short_order_block_reclaim",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4724.665,
        "ob_high": 4729.27,
        "displacement_low": 4698.72
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-23T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4694.135,
        "impulse_high": 4742.37,
        "fib50": 4718.2525000000005,
        "fib62": 4712.4643
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-23T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4698.405,
        "impulse_high": 4715.72,
        "fib50": 4707.0625,
        "fib62": 4709.1403
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-23T07-15-00Z_long_order_block_reclaim",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T07:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4692.485,
        "ob_high": 4707.285,
        "displacement_high": 4715.36
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-23T10-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4684.265,
        "impulse_high": 4701.805,
        "fib50": 4693.035,
        "fib62": 4695.1398
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-23T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4701.78,
        "impulse_high": 4716.31,
        "fib50": 4709.045,
        "fib62": 4710.7886
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-23T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-23",
      "timestamp": "2026-04-23T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4704.645,
        "impulse_high": 4734.61,
        "fib50": 4719.6275000000005,
        "fib62": 4723.2233
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-24T01-30-00Z_long_breaker_continuation",
      "date": "2026-04-24",
      "timestamp": "2026-04-24T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4686.65,
        "breaker_low": 4689.775,
        "breaker_high": 4694.78,
        "break_high": 4702.715
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-24T04-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-24",
      "timestamp": "2026-04-24T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4658.565,
        "impulse_high": 4674.86,
        "fib50": 4666.7125,
        "fib62": 4668.6678999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-24T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-24",
      "timestamp": "2026-04-24T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4670.19,
        "impulse_high": 4688.255,
        "fib50": 4679.2225,
        "fib62": 4681.3903
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-24T12-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-24",
      "timestamp": "2026-04-24T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4677.88,
        "impulse_high": 4717.14,
        "fib50": 4697.51,
        "fib62": 4692.7988000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-24T18-30-00Z_short_order_block_reclaim",
      "date": "2026-04-24",
      "timestamp": "2026-04-24T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4720.05,
        "ob_high": 4724.975,
        "displacement_low": 4717.195
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-27T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4680.28,
        "impulse_high": 4697.365,
        "fib50": 4688.8225,
        "fib62": 4690.8727
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-27T05-00-00Z_long_order_block_reclaim",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4714.535,
        "ob_high": 4718.64,
        "displacement_high": 4729.63
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-27T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4704.45,
        "impulse_high": 4723.54,
        "fib50": 4713.995,
        "fib62": 4711.7042
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-27T12-45-00Z_short_breaker_continuation",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4712.655,
        "breaker_low": 4701.9,
        "breaker_high": 4709.2,
        "break_low": 4699.3
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-27T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4697.12,
        "impulse_high": 4707.965,
        "fib50": 4702.5425,
        "fib62": 4703.8439
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-27T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4686.375,
        "impulse_high": 4696.79,
        "fib50": 4691.5825,
        "fib62": 4692.8323
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-27T16-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4667.81,
        "impulse_high": 4682.755,
        "fib50": 4675.2825,
        "fib62": 4677.0759
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-27T17-30-00Z_short_order_block_reclaim",
      "date": "2026-04-27",
      "timestamp": "2026-04-27T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4683.71,
        "ob_high": 4696.84,
        "displacement_low": 4676.715
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-28T00-15-00Z_long_order_block_reclaim",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T00:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4692.04,
        "ob_high": 4694.945,
        "displacement_high": 4701.64
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-28T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4648.425,
        "impulse_high": 4668.08,
        "fib50": 4658.2525000000005,
        "fib62": 4660.6111
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-28T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4624.08,
        "impulse_high": 4658.84,
        "fib50": 4641.46,
        "fib62": 4645.6312
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-28T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4604.675,
        "impulse_high": 4619.39,
        "fib50": 4612.0325,
        "fib62": 4613.7983
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-28T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4555.635,
        "impulse_high": 4600.13,
        "fib50": 4577.8825,
        "fib62": 4583.2219000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-28T12-15-00Z_short_order_block_reclaim",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4594.295,
        "ob_high": 4604.4,
        "displacement_low": 4568.335
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-28T20-30-00Z_short_order_block_reclaim",
      "date": "2026-04-28",
      "timestamp": "2026-04-28T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4594.975,
        "ob_high": 4598.65,
        "displacement_low": 4591.275
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-29T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4575.72,
        "impulse_high": 4600.765,
        "fib50": 4588.2425,
        "fib62": 4591.2479
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T02-00-00Z_long_breaker_continuation",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4589.34,
        "breaker_low": 4594.175,
        "breaker_high": 4594.52,
        "break_high": 4600.18
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-29T02-45-00Z_short_breaker_continuation",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T02:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4610.535,
        "breaker_low": 4594.995,
        "breaker_high": 4595.755,
        "break_low": 4588.095
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-04-29T09-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T09:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4580.75,
        "fvg_low": 4569.725,
        "fvg_high": 4570.56
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-04-29T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4551.675,
        "impulse_high": 4569.725,
        "fib50": 4560.700000000001,
        "fib62": 4562.866
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4541.705,
        "impulse_high": 4560.21,
        "fib50": 4550.9575,
        "fib62": 4553.1781
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4510.095,
        "impulse_high": 4539.495,
        "fib50": 4524.795,
        "fib62": 4528.323
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T15-00-00Z_short_order_block_reclaim",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4544.91,
        "ob_high": 4553.65,
        "displacement_low": 4534.64
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-29T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4543.32,
        "impulse_high": 4560.37,
        "fib50": 4551.844999999999,
        "fib62": 4553.891
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T18-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4525.16,
        "impulse_high": 4553.05,
        "fib50": 4539.105,
        "fib62": 4542.4518
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-29T19-15-00Z_short_order_block_reclaim",
      "date": "2026-04-29",
      "timestamp": "2026-04-29T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4541.79,
        "ob_high": 4547.83,
        "displacement_low": 4525.31
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-30T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4551.425,
        "impulse_high": 4561.945,
        "fib50": 4556.6849999999995,
        "fib62": 4555.4226
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-30T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4564.76,
        "impulse_high": 4581.135,
        "fib50": 4572.9475,
        "fib62": 4570.9825
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-30T01-30-00Z_long_order_block_reclaim",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4564.76,
        "ob_high": 4571.51,
        "displacement_high": 4581.135
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-04-30T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4559.94,
        "impulse_high": 4574.41,
        "fib50": 4567.174999999999,
        "fib62": 4568.9114
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-30T05-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4545.74,
        "impulse_high": 4557.09,
        "fib50": 4551.415,
        "fib62": 4552.777
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-30T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4623.705,
        "impulse_high": 4644.2,
        "fib50": 4633.952499999999,
        "fib62": 4631.4931
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-04-30T13-00-00Z_long_order_block_reclaim",
      "date": "2026-04-30",
      "timestamp": "2026-04-30T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4624.75,
        "ob_high": 4636.6,
        "displacement_high": 4640.14
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-01T00-00-00Z_short_order_block_reclaim",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4630.81,
        "ob_high": 4634.145,
        "displacement_low": 4626.585
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-01T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4616.225,
        "impulse_high": 4622.435,
        "fib50": 4619.33,
        "fib62": 4618.5848000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-01T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4616.655,
        "impulse_high": 4631.045,
        "fib50": 4623.85,
        "fib62": 4625.5768
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-01T04-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4617.875,
        "impulse_high": 4626.76,
        "fib50": 4622.3175,
        "fib62": 4621.2513
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-01T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4625.16,
        "impulse_high": 4660.585,
        "fib50": 4642.8724999999995,
        "fib62": 4638.6215
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-01T19-15-00Z_short_order_block_reclaim",
      "date": "2026-05-01",
      "timestamp": "2026-05-01T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4627.27,
        "ob_high": 4635.12,
        "displacement_low": 4615.69
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-03T22-45-00Z_long_order_block_reclaim",
      "date": "2026-05-03",
      "timestamp": "2026-05-03T22:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4612.66,
        "ob_high": 4623.295,
        "displacement_high": 4629.465
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-04T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4604.935,
        "impulse_high": 4613.585,
        "fib50": 4609.26,
        "fib62": 4608.222000000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-04T01-45-00Z_short_order_block_reclaim",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4604.935,
        "ob_high": 4613.585,
        "displacement_low": 4596.18
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-04T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4592.965,
        "impulse_high": 4613.965,
        "fib50": 4603.465,
        "fib62": 4600.945
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-04T02-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4591.6,
        "impulse_high": 4618.825,
        "fib50": 4605.2125,
        "fib62": 4608.4795
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-04T09-00-00Z_short_order_block_reclaim",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4582.92,
        "ob_high": 4588.35,
        "displacement_low": 4578.215
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-04T10-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T10:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4526.09,
        "impulse_high": 4576.03,
        "fib50": 4551.0599999999995,
        "fib62": 4557.0527999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-04T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4514.78,
        "impulse_high": 4566.2,
        "fib50": 4540.49,
        "fib62": 4546.6604
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-04T17-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-04",
      "timestamp": "2026-05-04T17:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4513.635,
        "impulse_high": 4543.065,
        "fib50": 4528.35,
        "fib62": 4531.8816
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-05T06-15-00Z_long_order_block_reclaim",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4535.76,
        "ob_high": 4540.52,
        "displacement_high": 4552.0
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-05T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4533.9,
        "impulse_high": 4552.02,
        "fib50": 4542.96,
        "fib62": 4545.1344
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-05T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4536.365,
        "impulse_high": 4551.03,
        "fib50": 4543.6975,
        "fib62": 4541.9376999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-05T11-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4539.96,
        "fvg_low": 4545.895,
        "fvg_high": 4549.845
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-05T12-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4554.195,
        "impulse_high": 4574.315,
        "fib50": 4564.254999999999,
        "fib62": 4561.8405999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-05T14-15-00Z_long_order_block_reclaim",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4561.775,
        "ob_high": 4568.59,
        "displacement_high": 4580.955
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-05T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-05",
      "timestamp": "2026-05-05T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4569.565,
        "impulse_high": 4590.57,
        "fib50": 4580.067499999999,
        "fib62": 4577.546899999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4602.135,
        "impulse_high": 4619.97,
        "fib50": 4611.0525,
        "fib62": 4608.9123
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T08-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4663.125,
        "impulse_high": 4681.905,
        "fib50": 4672.514999999999,
        "fib62": 4670.2614
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4704.7,
        "impulse_high": 4723.14,
        "fib50": 4713.92,
        "fib62": 4711.7072
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4671.655,
        "impulse_high": 4702.965,
        "fib50": 4687.3099999999995,
        "fib62": 4683.5527999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T15-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4680.325,
        "impulse_high": 4707.82,
        "fib50": 4694.0725,
        "fib62": 4690.773099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T19-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4686.14,
        "impulse_high": 4700.235,
        "fib50": 4693.1875,
        "fib62": 4691.4961
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-06T20-45-00Z_long_order_block_reclaim",
      "date": "2026-05-06",
      "timestamp": "2026-05-06T20:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4684.88,
        "ob_high": 4688.175,
        "displacement_high": 4695.855
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-07T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4685.275,
        "fvg_low": 4691.62,
        "fvg_high": 4703.705
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-07T01-30-00Z_long_breaker_continuation",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4685.275,
        "breaker_low": 4688.86,
        "breaker_high": 4711.305,
        "break_high": 4701.545
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-07T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4702.45,
        "impulse_high": 4721.53,
        "fib50": 4711.99,
        "fib62": 4709.7004
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4685.275,
        "impulse_high": 4716.44,
        "fib50": 4700.8575,
        "fib62": 4697.1177
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4716.0,
        "impulse_high": 4750.01,
        "fib50": 4733.005,
        "fib62": 4728.9238000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T12-45-00Z_long_order_block_reclaim",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T12:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4733.185,
        "ob_high": 4747.26,
        "displacement_high": 4751.805
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-07T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4737.445,
        "impulse_high": 4752.69,
        "fib50": 4745.067499999999,
        "fib62": 4743.2381
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4741.28,
        "impulse_high": 4759.595,
        "fib50": 4750.4375,
        "fib62": 4748.2397
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T17-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4687.92,
        "impulse_high": 4719.685,
        "fib50": 4703.8025,
        "fib62": 4707.6143
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-07T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-07",
      "timestamp": "2026-05-07T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4686.28,
        "impulse_high": 4715.835,
        "fib50": 4701.0575,
        "fib62": 4704.6041
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-08T01-30-00Z_long_order_block_reclaim",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4697.02,
        "ob_high": 4705.965,
        "displacement_high": 4719.515
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-08T02-30-00Z_long_order_block_reclaim",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4705.51,
        "ob_high": 4715.38,
        "displacement_high": 4725.71
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-08T06-30-00Z_long_order_block_reclaim",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4712.665,
        "ob_high": 4730.705,
        "displacement_high": 4734.895
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-08T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4697.045,
        "impulse_high": 4726.725,
        "fib50": 4711.885,
        "fib62": 4715.4466
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-08T08-15-00Z_short_breaker_continuation",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T08:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4734.895,
        "breaker_low": 4721.76,
        "breaker_high": 4723.17,
        "break_low": 4709.31
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-08T08-30-00Z_short_breaker_continuation",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4731.39,
        "breaker_low": 4723.525,
        "breaker_high": 4724.715,
        "break_low": 4708.72
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-08T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4703.42,
        "impulse_high": 4732.125,
        "fib50": 4717.7725,
        "fib62": 4714.3279
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-08T14-00-00Z_long_breaker_continuation",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4703.945,
        "breaker_low": 4717.87,
        "breaker_high": 4719.985,
        "break_high": 4727.85
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-08T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4726.94,
        "impulse_high": 4748.015,
        "fib50": 4737.4775,
        "fib62": 4734.9484999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-08T14-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4749.58,
        "fvg_low": 4734.02,
        "fvg_high": 4734.955
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-08T15-00-00Z_long_breaker_continuation",
      "date": "2026-05-08",
      "timestamp": "2026-05-08T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4702.88,
        "breaker_low": 4704.835,
        "breaker_high": 4711.075,
        "break_high": 4727.85
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-10T23-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-10",
      "timestamp": "2026-05-10T23:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4698.65,
        "fvg_low": 4691.935,
        "fvg_high": 4694.77
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-11T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4675.91,
        "impulse_high": 4691.935,
        "fib50": 4683.922500000001,
        "fib62": 4685.8455
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-11T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4680.29,
        "impulse_high": 4701.935,
        "fib50": 4691.1125,
        "fib62": 4693.7099
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-11T05-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4680.97,
        "fvg_low": 4664.3,
        "fvg_high": 4670.78
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-11T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4648.09,
        "impulse_high": 4680.97,
        "fib50": 4664.530000000001,
        "fib62": 4668.4756
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-11T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4698.82,
        "impulse_high": 4735.715,
        "fib50": 4717.2675,
        "fib62": 4712.840099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-11T23-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-11",
      "timestamp": "2026-05-11T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4739.075,
        "impulse_high": 4755.745,
        "fib50": 4747.41,
        "fib62": 4745.4096
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4751.395,
        "impulse_high": 4769.795,
        "fib50": 4760.595,
        "fib62": 4758.387000000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T05-30-00Z_short_order_block_reclaim",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4721.225,
        "ob_high": 4726.48,
        "displacement_low": 4710.975
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-12T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4695.46,
        "impulse_high": 4714.735,
        "fib50": 4705.0975,
        "fib62": 4707.4105
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T09-45-00Z_short_order_block_reclaim",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T09:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4697.625,
        "ob_high": 4702.625,
        "displacement_low": 4694.465
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-12T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4685.28,
        "impulse_high": 4700.48,
        "fib50": 4692.879999999999,
        "fib62": 4694.704
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4695.19,
        "impulse_high": 4708.415,
        "fib50": 4701.8025,
        "fib62": 4703.3895
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4679.41,
        "impulse_high": 4709.025,
        "fib50": 4694.2175,
        "fib62": 4697.771299999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T13-30-00Z_short_order_block_reclaim",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4700.625,
        "ob_high": 4711.68,
        "displacement_low": 4687.52
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-12T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4676.88,
        "impulse_high": 4701.935,
        "fib50": 4689.4075,
        "fib62": 4692.4141
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-12T14-00-00Z_short_order_block_reclaim",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4683.855,
        "ob_high": 4701.935,
        "displacement_low": 4676.88
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-12T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-12",
      "timestamp": "2026-05-12T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4638.365,
        "impulse_high": 4676.235,
        "fib50": 4657.299999999999,
        "fib62": 4661.8444
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4687.705,
        "impulse_high": 4700.65,
        "fib50": 4694.1775,
        "fib62": 4695.7309
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T03-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4689.025,
        "impulse_high": 4700.775,
        "fib50": 4694.9,
        "fib62": 4693.49
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4686.01,
        "impulse_high": 4701.095,
        "fib50": 4693.5525,
        "fib62": 4691.7423
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T13-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4683.315,
        "impulse_high": 4701.62,
        "fib50": 4692.4675,
        "fib62": 4694.6641
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4684.555,
        "impulse_high": 4698.595,
        "fib50": 4691.575000000001,
        "fib62": 4693.2598
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-13T23-45-00Z_long_order_block_reclaim",
      "date": "2026-05-13",
      "timestamp": "2026-05-13T23:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4689.06,
        "ob_high": 4693.965,
        "displacement_high": 4697.38
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-14T01-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4707.15,
        "fvg_low": 4695.495,
        "fvg_high": 4699.57
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-14T02-00-00Z_short_breaker_continuation",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4707.15,
        "breaker_low": 4684.49,
        "breaker_high": 4705.015,
        "break_low": 4689.06
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-14T02-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4684.49,
        "impulse_high": 4707.15,
        "fib50": 4695.82,
        "fib62": 4698.539199999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T02-30-00Z_short_order_block_reclaim",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4699.57,
        "ob_high": 4706.795,
        "displacement_low": 4684.49
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-14T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4680.21,
        "impulse_high": 4699.775,
        "fib50": 4689.9925,
        "fib62": 4692.3403
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T04-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4673.965,
        "impulse_high": 4691.755,
        "fib50": 4682.860000000001,
        "fib62": 4684.9948
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T04-00-00Z_short_order_block_reclaim",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4681.74,
        "ob_high": 4693.45,
        "displacement_low": 4675.92
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-14T04-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4668.71,
        "fvg_low": 4678.03,
        "fvg_high": 4681.96
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-14T06-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4668.71,
        "impulse_high": 4707.545,
        "fib50": 4688.1275000000005,
        "fib62": 4683.4673
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T08-00-00Z_long_order_block_reclaim",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4694.685,
        "ob_high": 4702.435,
        "displacement_high": 4706.79
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-14T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4688.235,
        "impulse_high": 4707.935,
        "fib50": 4698.085,
        "fib62": 4700.4490000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T14-15-00Z_short_breaker_continuation",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4707.63,
        "breaker_low": 4698.855,
        "breaker_high": 4703.895,
        "break_low": 4688.645
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-14T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4679.26,
        "impulse_high": 4692.45,
        "fib50": 4685.855,
        "fib62": 4687.4378
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-14T22-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-14",
      "timestamp": "2026-05-14T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4653.26,
        "impulse_high": 4665.52,
        "fib50": 4659.39,
        "fib62": 4660.8612
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-15T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4646.85,
        "impulse_high": 4665.445,
        "fib50": 4656.1475,
        "fib62": 4658.3789
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-15T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4607.76,
        "impulse_high": 4631.69,
        "fib50": 4619.725,
        "fib62": 4622.5966
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-15T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4556.71,
        "impulse_high": 4590.315,
        "fib50": 4573.5125,
        "fib62": 4577.545099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-15T13-45-00Z_short_order_block_reclaim",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4540.84,
        "ob_high": 4557.66,
        "displacement_low": 4520.03
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-15T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4510.985,
        "impulse_high": 4551.44,
        "fib50": 4531.2125,
        "fib62": 4536.067099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-15T19-45-00Z_long_order_block_reclaim",
      "date": "2026-05-15",
      "timestamp": "2026-05-15T19:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4541.94,
        "ob_high": 4548.255,
        "displacement_high": 4558.15
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-17T22-00-00Z_short_order_block_reclaim",
      "date": "2026-05-17",
      "timestamp": "2026-05-17T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4549.765,
        "ob_high": 4555.375,
        "displacement_low": 4545.1
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-18T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4514.48,
        "impulse_high": 4542.635,
        "fib50": 4528.5575,
        "fib62": 4531.9361
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-18T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4530.205,
        "impulse_high": 4552.045,
        "fib50": 4541.125,
        "fib62": 4543.7458
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-18T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4535.77,
        "impulse_high": 4567.17,
        "fib50": 4551.47,
        "fib62": 4547.702
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-18T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4550.305,
        "impulse_high": 4575.065,
        "fib50": 4562.6849999999995,
        "fib62": 4559.7138
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-18T14-15-00Z_long_order_block_reclaim",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4545.36,
        "ob_high": 4555.36,
        "displacement_high": 4569.835
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-18T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-18",
      "timestamp": "2026-05-18T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4573.86,
        "impulse_high": 4589.09,
        "fib50": 4581.475,
        "fib62": 4579.6474
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-19T00-00-00Z_long_order_block_reclaim",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4572.725,
        "ob_high": 4577.15,
        "displacement_high": 4587.19
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-19T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4546.055,
        "impulse_high": 4560.03,
        "fib50": 4553.0425,
        "fib62": 4554.7195
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-19T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4541.575,
        "impulse_high": 4559.535,
        "fib50": 4550.555,
        "fib62": 4548.3998
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-19T08-00-00Z_long_order_block_reclaim",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4541.575,
        "ob_high": 4549.57,
        "displacement_high": 4559.535
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-19T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4536.405,
        "impulse_high": 4559.25,
        "fib50": 4547.827499999999,
        "fib62": 4550.5689
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-19T11-00-00Z_long_order_block_reclaim",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4525.68,
        "ob_high": 4543.22,
        "displacement_high": 4544.925
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-19T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4529.915,
        "impulse_high": 4543.195,
        "fib50": 4536.555,
        "fib62": 4538.1485999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-19T23-45-00Z_long_order_block_reclaim",
      "date": "2026-05-19",
      "timestamp": "2026-05-19T23:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4483.535,
        "ob_high": 4488.76,
        "displacement_high": 4496.595
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-20T01-00-00Z_long_order_block_reclaim",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4479.82,
        "ob_high": 4490.71,
        "displacement_high": 4502.18
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-20T01-45-00Z_long_breaker_continuation",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4477.45,
        "breaker_low": 4479.56,
        "breaker_high": 4485.975,
        "break_high": 4500.96
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-20T01-45-00Z_short_breaker_continuation",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4496.595,
        "breaker_low": 4485.69,
        "breaker_high": 4486.285,
        "break_low": 4477.45
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-20T05-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4458.68,
        "impulse_high": 4483.69,
        "fib50": 4471.1849999999995,
        "fib62": 4474.1862
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-20T09-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4472.835,
        "impulse_high": 4486.3,
        "fib50": 4479.5675,
        "fib62": 4481.1833
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-20T11-30-00Z_long_order_block_reclaim",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4492.845,
        "ob_high": 4496.855,
        "displacement_high": 4501.29
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-20T22-30-00Z_short_order_block_reclaim",
      "date": "2026-05-20",
      "timestamp": "2026-05-20T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4542.18,
        "ob_high": 4544.785,
        "displacement_low": 4538.68
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-21T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4538.18,
        "impulse_high": 4547.525,
        "fib50": 4542.8525,
        "fib62": 4541.7311
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-21T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4539.92,
        "impulse_high": 4567.835,
        "fib50": 4553.8775000000005,
        "fib62": 4550.5277
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-21T02-15-00Z_long_breaker_continuation",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T02:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4534.74,
        "breaker_low": 4539.94,
        "breaker_high": 4540.64,
        "break_high": 4550.445
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-21T03-15-00Z_short_breaker_continuation",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T03:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4560.26,
        "breaker_low": 4539.92,
        "breaker_high": 4545.19,
        "break_low": 4534.74
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-21T08-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4518.415,
        "impulse_high": 4537.06,
        "fib50": 4527.7375,
        "fib62": 4525.5001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-21T09-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4543.06,
        "fvg_low": 4533.25,
        "fvg_high": 4535.65
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-21T12-30-00Z_short_order_block_reclaim",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4513.68,
        "ob_high": 4519.47,
        "displacement_low": 4503.775
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-21T18-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4514.28,
        "impulse_high": 4546.4,
        "fib50": 4530.34,
        "fib62": 4526.4856
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-21T19-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-21",
      "timestamp": "2026-05-21T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4527.51,
        "impulse_high": 4549.565,
        "fib50": 4538.5375,
        "fib62": 4541.1840999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T01-00-00Z_short_order_block_reclaim",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4535.8,
        "ob_high": 4541.24,
        "displacement_low": 4525.64
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-22T04-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4521.925,
        "impulse_high": 4530.04,
        "fib50": 4525.9825,
        "fib62": 4525.0087
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4507.43,
        "impulse_high": 4534.325,
        "fib50": 4520.8775000000005,
        "fib62": 4524.1049
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T06-15-00Z_short_breaker_continuation",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4534.325,
        "breaker_low": 4525.065,
        "breaker_high": 4526.165,
        "break_low": 4518.53
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-22T06-15-00Z_short_order_block_reclaim",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4525.065,
        "ob_high": 4534.325,
        "displacement_low": 4507.43
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-22T07-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4510.025,
        "impulse_high": 4526.24,
        "fib50": 4518.1325,
        "fib62": 4516.186699999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T09-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4514.88,
        "fvg_low": 4520.67,
        "fvg_high": 4524.82
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-22T10-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4514.88,
        "impulse_high": 4535.96,
        "fib50": 4525.42,
        "fib62": 4522.8904
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T10-15-00Z_long_breaker_continuation",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T10:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4514.88,
        "breaker_low": 4517.905,
        "breaker_high": 4526.155,
        "break_high": 4531.32
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-22T11-30-00Z_long_breaker_continuation",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4515.18,
        "breaker_low": 4517.405,
        "breaker_high": 4520.67,
        "break_high": 4531.32
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-22T11-45-00Z_short_breaker_continuation",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4535.96,
        "breaker_low": 4524.82,
        "breaker_high": 4525.355,
        "break_low": 4514.88
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-22T12-00-00Z_short_breaker_continuation",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4536.82,
        "breaker_low": 4529.58,
        "breaker_high": 4532.265,
        "break_low": 4514.88
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-22T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4491.93,
        "impulse_high": 4513.73,
        "fib50": 4502.83,
        "fib62": 4505.446
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-22T20-45-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-05-22",
      "timestamp": "2026-05-22T20:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4504.17,
        "fvg_low": 4510.6,
        "fvg_high": 4549.82
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-24T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-24",
      "timestamp": "2026-05-24T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4565.27,
        "impulse_high": 4578.645,
        "fib50": 4571.9575,
        "fib62": 4570.352500000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-25T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-25",
      "timestamp": "2026-05-25T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4553.65,
        "impulse_high": 4563.43,
        "fib50": 4558.54,
        "fib62": 4557.3664
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-25T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-25",
      "timestamp": "2026-05-25T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4554.28,
        "impulse_high": 4565.18,
        "fib50": 4559.73,
        "fib62": 4558.422
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-25T11-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-25",
      "timestamp": "2026-05-25T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4577.115,
        "fvg_low": 4569.455,
        "fvg_high": 4571.69
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-25T23-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-25",
      "timestamp": "2026-05-25T23:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4580.245,
        "fvg_low": 4568.665,
        "fvg_high": 4573.81
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-26T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4541.245,
        "impulse_high": 4560.36,
        "fib50": 4550.8025,
        "fib62": 4553.0963
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4532.66,
        "impulse_high": 4543.255,
        "fib50": 4537.9575,
        "fib62": 4539.2289
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T08-00-00Z_long_order_block_reclaim",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4521.68,
        "ob_high": 4529.915,
        "displacement_high": 4539.2
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-26T09-15-00Z_short_breaker_continuation",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T09:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4539.2,
        "breaker_low": 4525.415,
        "breaker_high": 4526.935,
        "break_low": 4521.68
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-26T09-45-00Z_short_order_block_reclaim",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T09:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4518.275,
        "ob_high": 4526.665,
        "displacement_low": 4512.07
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-26T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4520.58,
        "impulse_high": 4539.145,
        "fib50": 4529.8625,
        "fib62": 4532.0903
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4503.615,
        "impulse_high": 4523.925,
        "fib50": 4513.77,
        "fib62": 4516.2072
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4522.9,
        "impulse_high": 4536.405,
        "fib50": 4529.6525,
        "fib62": 4531.273099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T18-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4490.025,
        "impulse_high": 4501.825,
        "fib50": 4495.924999999999,
        "fib62": 4497.340999999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-26T23-15-00Z_long_order_block_reclaim",
      "date": "2026-05-26",
      "timestamp": "2026-05-26T23:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4498.125,
        "ob_high": 4505.71,
        "displacement_high": 4512.66
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-27T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4511.205,
        "impulse_high": 4528.05,
        "fib50": 4519.6275000000005,
        "fib62": 4517.6061
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T04-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T04:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4496.91,
        "impulse_high": 4507.39,
        "fib50": 4502.15,
        "fib62": 4503.4076000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T04-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4507.005,
        "impulse_high": 4517.265,
        "fib50": 4512.135,
        "fib62": 4513.3662
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4483.765,
        "impulse_high": 4499.31,
        "fib50": 4491.5375,
        "fib62": 4493.4029
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4442.765,
        "impulse_high": 4477.34,
        "fib50": 4460.0525,
        "fib62": 4464.2015
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T12-00-00Z_short_order_block_reclaim",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4432.51,
        "ob_high": 4444.325,
        "displacement_low": 4425.145
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-27T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4401.63,
        "impulse_high": 4439.215,
        "fib50": 4420.422500000001,
        "fib62": 4424.9327
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-27T20-30-00Z_long_order_block_reclaim",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T20:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4448.905,
        "ob_high": 4453.855,
        "displacement_high": 4455.375
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-27T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-27",
      "timestamp": "2026-05-27T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4449.35,
        "impulse_high": 4457.815,
        "fib50": 4453.5825,
        "fib62": 4454.5983
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-28T00-00-00Z_short_order_block_reclaim",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4449.175,
        "ob_high": 4454.205,
        "displacement_low": 4443.905
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-28T00-45-00Z_short_breaker_continuation",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4462.58,
        "breaker_low": 4455.31,
        "breaker_high": 4460.035,
        "break_low": 4448.905
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-28T01-00-00Z_short_breaker_continuation",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4462.54,
        "breaker_low": 4455.895,
        "breaker_high": 4456.89,
        "break_low": 4447.795
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-28T01-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4459.0,
        "fvg_low": 4440.385,
        "fvg_high": 4450.83
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-05-28T11-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4375.255,
        "impulse_high": 4402.53,
        "fib50": 4388.8925,
        "fib62": 4392.1655
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-28T22-15-00Z_short_order_block_reclaim",
      "date": "2026-05-28",
      "timestamp": "2026-05-28T22:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4494.775,
        "ob_high": 4496.53,
        "displacement_low": 4491.7
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-29T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4492.085,
        "impulse_high": 4500.695,
        "fib50": 4496.389999999999,
        "fib62": 4495.3568
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4492.42,
        "impulse_high": 4520.815,
        "fib50": 4506.6175,
        "fib62": 4503.2101
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T02-30-00Z_long_order_block_reclaim",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4493.45,
        "ob_high": 4498.605,
        "displacement_high": 4515.515
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-29T03-00-00Z_long_breaker_continuation",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4488.975,
        "breaker_low": 4489.945,
        "breaker_high": 4496.38,
        "break_high": 4500.715
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-05-29T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4501.18,
        "impulse_high": 4511.665,
        "fib50": 4506.422500000001,
        "fib62": 4505.1643
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4511.53,
        "impulse_high": 4524.09,
        "fib50": 4517.8099999999995,
        "fib62": 4516.3027999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4512.86,
        "impulse_high": 4526.2,
        "fib50": 4519.53,
        "fib62": 4517.9292
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T08-00-00Z_long_order_block_reclaim",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4510.695,
        "ob_high": 4517.18,
        "displacement_high": 4526.04
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-05-29T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4513.255,
        "impulse_high": 4532.505,
        "fib50": 4522.88,
        "fib62": 4520.57
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-05-29T14-15-00Z_long_breaker_continuation",
      "date": "2026-05-29",
      "timestamp": "2026-05-29T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4520.115,
        "breaker_low": 4528.49,
        "breaker_high": 4531.995,
        "break_high": 4543.31
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-01T00-45-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4537.915,
        "ob_high": 4544.615,
        "displacement_low": 4535.39
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4520.025,
        "impulse_high": 4536.73,
        "fib50": 4528.3775,
        "fib62": 4526.372899999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-01T01-15-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4536.035,
        "ob_high": 4542.945,
        "displacement_low": 4526.325
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4526.325,
        "impulse_high": 4541.45,
        "fib50": 4533.8875,
        "fib62": 4535.702499999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-01T02-00-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4527.285,
        "ob_high": 4533.93,
        "displacement_low": 4523.715
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T03-45-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T03:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4513.96,
        "ob_high": 4521.465,
        "displacement_low": 4509.99
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T06-45-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T06:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4504.98,
        "ob_high": 4516.015,
        "displacement_low": 4501.67
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4500.32,
        "impulse_high": 4514.99,
        "fib50": 4507.655,
        "fib62": 4509.4154
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-01T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4490.45,
        "impulse_high": 4504.69,
        "fib50": 4497.57,
        "fib62": 4499.2788
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-01T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4448.35,
        "impulse_high": 4478.78,
        "fib50": 4463.5650000000005,
        "fib62": 4467.2166
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-01T14-00-00Z_short_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4459.17,
        "ob_high": 4478.78,
        "displacement_low": 4448.35
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-01T17-30-00Z_long_order_block_reclaim",
      "date": "2026-06-01",
      "timestamp": "2026-06-01T17:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4471.58,
        "ob_high": 4481.085,
        "displacement_high": 4482.905
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-02T00-30-00Z_long_breaker_continuation",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4476.91,
        "breaker_low": 4484.545,
        "breaker_high": 4485.265,
        "break_high": 4488.345
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-02T00-30-00Z_long_order_block_reclaim",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4476.91,
        "ob_high": 4485.265,
        "displacement_high": 4493.92
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-02T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4480.83,
        "impulse_high": 4497.135,
        "fib50": 4488.9825,
        "fib62": 4490.9391000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-02T02-00-00Z_short_breaker_continuation",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4493.92,
        "breaker_low": 4481.135,
        "breaker_high": 4481.325,
        "break_low": 4476.91
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-02T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4463.01,
        "impulse_high": 4489.395,
        "fib50": 4476.2025,
        "fib62": 4479.3687
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-02T02-30-00Z_short_breaker_continuation",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4497.135,
        "breaker_low": 4485.065,
        "breaker_high": 4493.79,
        "break_low": 4476.91
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-02T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4517.07,
        "impulse_high": 4534.035,
        "fib50": 4525.5525,
        "fib62": 4523.5167
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-02T14-30-00Z_short_order_block_reclaim",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4498.455,
        "ob_high": 4507.065,
        "displacement_low": 4490.435
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-02T17-45-00Z_short_order_block_reclaim",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T17:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4486.595,
        "ob_high": 4491.795,
        "displacement_low": 4482.14
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-02T18-45-00Z_short_order_block_reclaim",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T18:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4484.075,
        "ob_high": 4491.075,
        "displacement_low": 4478.785
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-02T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-02",
      "timestamp": "2026-06-02T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4484.15,
        "impulse_high": 4492.355,
        "fib50": 4488.2525,
        "fib62": 4489.237099999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4462.29,
        "impulse_high": 4488.91,
        "fib50": 4475.6,
        "fib62": 4478.7944
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T00-45-00Z_long_breaker_continuation",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4474.64,
        "breaker_low": 4485.015,
        "breaker_high": 4488.91,
        "break_high": 4493.32
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-03T00-45-00Z_short_breaker_continuation",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4493.32,
        "breaker_low": 4488.045,
        "breaker_high": 4490.115,
        "break_low": 4478.785
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-03T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4463.64,
        "impulse_high": 4487.81,
        "fib50": 4475.725,
        "fib62": 4478.625400000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T02-00-00Z_long_breaker_continuation",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4462.29,
        "breaker_low": 4477.55,
        "breaker_high": 4477.575,
        "break_high": 4493.32
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-03T04-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T04:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4488.44,
        "fvg_low": 4477.385,
        "fvg_high": 4484.035
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-03T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4456.71,
        "impulse_high": 4469.095,
        "fib50": 4462.9025,
        "fib62": 4464.3887
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4440.365,
        "impulse_high": 4459.05,
        "fib50": 4449.7075,
        "fib62": 4451.9497
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T09-30-00Z_short_order_block_reclaim",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4441.92,
        "ob_high": 4459.135,
        "displacement_low": 4439.52
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-03T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4445.875,
        "impulse_high": 4466.205,
        "fib50": 4456.04,
        "fib62": 4458.4796
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T19-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4439.52,
        "impulse_high": 4458.515,
        "fib50": 4449.0175,
        "fib62": 4451.2969
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-03T22-45-00Z_short_breaker_continuation",
      "date": "2026-06-03",
      "timestamp": "2026-06-03T22:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4452.325,
        "breaker_low": 4446.635,
        "breaker_high": 4449.875,
        "break_low": 4433.925
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-04T01-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4443.18,
        "fvg_low": 4453.06,
        "fvg_high": 4459.905
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-04T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4443.18,
        "impulse_high": 4473.95,
        "fib50": 4458.5650000000005,
        "fib62": 4454.8726
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4457.985,
        "impulse_high": 4476.71,
        "fib50": 4467.3475,
        "fib62": 4465.1005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T11-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4466.605,
        "impulse_high": 4474.025,
        "fib50": 4470.315,
        "fib62": 4469.424599999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4482.365,
        "impulse_high": 4514.76,
        "fib50": 4498.5625,
        "fib62": 4494.6751
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T13-45-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4515.515,
        "fvg_low": 4500.035,
        "fvg_high": 4502.255
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-04T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4468.785,
        "impulse_high": 4491.62,
        "fib50": 4480.202499999999,
        "fib62": 4477.4623
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4457.36,
        "impulse_high": 4486.88,
        "fib50": 4472.12,
        "fib62": 4475.6624
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-04T22-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-04",
      "timestamp": "2026-06-04T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4473.895,
        "impulse_high": 4481.045,
        "fib50": 4477.47,
        "fib62": 4476.612
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-05T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4460.67,
        "impulse_high": 4469.645,
        "fib50": 4465.1575,
        "fib62": 4466.2345000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-05T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4444.265,
        "impulse_high": 4459.79,
        "fib50": 4452.0275,
        "fib62": 4453.8905
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-05T04-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4438.69,
        "impulse_high": 4451.99,
        "fib50": 4445.34,
        "fib62": 4446.936
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-05T11-15-00Z_short_order_block_reclaim",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T11:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4464.44,
        "ob_high": 4467.99,
        "displacement_low": 4461.175
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-05T12-00-00Z_long_breaker_continuation",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4458.28,
        "breaker_low": 4461.525,
        "breaker_high": 4466.2,
        "break_high": 4469.465
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-05T12-00-00Z_long_order_block_reclaim",
      "date": "2026-06-05",
      "timestamp": "2026-06-05T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4463.235,
        "ob_high": 4467.235,
        "displacement_high": 4475.325
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-08T01-00-00Z_long_breaker_continuation",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4310.115,
        "breaker_low": 4321.55,
        "breaker_high": 4330.61,
        "break_high": 4342.355
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-08T01-00-00Z_long_order_block_reclaim",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4316.02,
        "ob_high": 4326.93,
        "displacement_high": 4334.275
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-08T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4311.29,
        "impulse_high": 4346.18,
        "fib50": 4328.735000000001,
        "fib62": 4332.9218
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-08T05-15-00Z_short_order_block_reclaim",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T05:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4307.81,
        "ob_high": 4314.215,
        "displacement_low": 4304.75
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-08T06-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4268.48,
        "impulse_high": 4313.4,
        "fib50": 4290.94,
        "fib62": 4296.3304
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-08T06-00-00Z_short_order_block_reclaim",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4304.55,
        "ob_high": 4314.56,
        "displacement_low": 4268.48
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-08T09-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-08",
      "timestamp": "2026-06-08T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4273.165,
        "fvg_low": 4291.075,
        "fvg_high": 4291.185
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-09T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4320.55,
        "impulse_high": 4328.915,
        "fib50": 4324.7325,
        "fib62": 4325.7363000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4318.66,
        "impulse_high": 4338.34,
        "fib50": 4328.5,
        "fib62": 4326.1384
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T06-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4331.66,
        "impulse_high": 4351.56,
        "fib50": 4341.610000000001,
        "fib62": 4339.222
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T06-45-00Z_long_breaker_continuation",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T06:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4324.33,
        "breaker_low": 4330.625,
        "breaker_high": 4330.725,
        "break_high": 4342.275
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-09T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4330.225,
        "impulse_high": 4340.525,
        "fib50": 4335.375,
        "fib62": 4336.611
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4326.06,
        "impulse_high": 4337.02,
        "fib50": 4331.540000000001,
        "fib62": 4332.8552
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T12-30-00Z_long_order_block_reclaim",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4329.865,
        "ob_high": 4335.21,
        "displacement_high": 4340.965
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-09T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4330.295,
        "impulse_high": 4345.62,
        "fib50": 4337.9575,
        "fib62": 4339.7965
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4305.8,
        "impulse_high": 4336.22,
        "fib50": 4321.01,
        "fib62": 4324.660400000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4278.58,
        "impulse_high": 4321.11,
        "fib50": 4299.844999999999,
        "fib62": 4304.9486
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-09T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-09",
      "timestamp": "2026-06-09T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4232.475,
        "impulse_high": 4257.605,
        "fib50": 4245.04,
        "fib62": 4248.0556
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4187.075,
        "impulse_high": 4219.2,
        "fib50": 4203.1375,
        "fib62": 4206.992499999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T03-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4173.265,
        "impulse_high": 4192.455,
        "fib50": 4182.860000000001,
        "fib62": 4185.1628
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4183.89,
        "impulse_high": 4207.015,
        "fib50": 4195.4525,
        "fib62": 4198.2275
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4145.865,
        "impulse_high": 4168.115,
        "fib50": 4156.99,
        "fib62": 4159.66
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T14-30-00Z_long_order_block_reclaim",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4133.065,
        "ob_high": 4151.57,
        "displacement_high": 4179.295
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-10T19-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4081.755,
        "impulse_high": 4102.25,
        "fib50": 4092.0025,
        "fib62": 4094.4619000000002
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-10T22-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-10",
      "timestamp": "2026-06-10T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4036.06,
        "impulse_high": 4063.75,
        "fib50": 4049.9049999999997,
        "fib62": 4053.2278
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-11T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4044.725,
        "impulse_high": 4064.6,
        "fib50": 4054.6625,
        "fib62": 4057.0475
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-11T06-00-00Z_long_order_block_reclaim",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4072.885,
        "ob_high": 4081.39,
        "displacement_high": 4099.785
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-11T09-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T09:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4077.645,
        "fvg_low": 4089.025,
        "fvg_high": 4090.075
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-11T14-15-00Z_short_order_block_reclaim",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4073.7,
        "ob_high": 4092.92,
        "displacement_low": 4052.975
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-11T18-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4101.695,
        "impulse_high": 4170.095,
        "fib50": 4135.895,
        "fib62": 4127.687
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-11T23-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-11",
      "timestamp": "2026-06-11T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4211.405,
        "impulse_high": 4246.715,
        "fib50": 4229.0599999999995,
        "fib62": 4224.8228
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-12T00-45-00Z_short_order_block_reclaim",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4207.315,
        "ob_high": 4230.53,
        "displacement_low": 4202.685
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-12T03-15-00Z_short_order_block_reclaim",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T03:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4200.875,
        "ob_high": 4208.585,
        "displacement_low": 4182.955
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-12T10-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4192.165,
        "impulse_high": 4220.73,
        "fib50": 4206.4475,
        "fib62": 4203.0197
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-12T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4182.88,
        "impulse_high": 4210.325,
        "fib50": 4196.6025,
        "fib62": 4199.8958999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-12T14-45-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T14:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4177.25,
        "fvg_low": 4193.36,
        "fvg_high": 4200.38
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-12T15-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4200.38,
        "impulse_high": 4235.69,
        "fib50": 4218.035,
        "fib62": 4213.7978
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-12T15-45-00Z_long_breaker_continuation",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4182.88,
        "breaker_low": 4202.98,
        "breaker_high": 4210.325,
        "break_high": 4218.77
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-12T20-15-00Z_short_order_block_reclaim",
      "date": "2026-06-12",
      "timestamp": "2026-06-12T20:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4214.375,
        "ob_high": 4219.565,
        "displacement_low": 4207.93
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-15T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4281.77,
        "impulse_high": 4295.225,
        "fib50": 4288.4975,
        "fib62": 4286.8829000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-15T05-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4301.235,
        "impulse_high": 4319.715,
        "fib50": 4310.475,
        "fib62": 4308.2573999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-15T08-00-00Z_short_order_block_reclaim",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4325.975,
        "ob_high": 4333.05,
        "displacement_low": 4312.725
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-15T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4335.09,
        "impulse_high": 4349.41,
        "fib50": 4342.25,
        "fib62": 4340.5316
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-15T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4354.015,
        "impulse_high": 4369.665,
        "fib50": 4361.84,
        "fib62": 4359.962
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-15T20-15-00Z_short_order_block_reclaim",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T20:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4316.73,
        "ob_high": 4321.11,
        "displacement_low": 4315.82
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-15T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-15",
      "timestamp": "2026-06-15T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4310.785,
        "impulse_high": 4322.095,
        "fib50": 4316.4400000000005,
        "fib62": 4317.7972
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-16T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4306.985,
        "impulse_high": 4318.335,
        "fib50": 4312.66,
        "fib62": 4314.022
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-16T05-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4331.0,
        "fvg_low": 4321.215,
        "fvg_high": 4324.635
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-16T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4314.24,
        "impulse_high": 4331.0,
        "fib50": 4322.62,
        "fib62": 4324.6312
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-16T07-00-00Z_short_order_block_reclaim",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4324.635,
        "ob_high": 4328.085,
        "displacement_low": 4316.165
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-16T08-00-00Z_long_order_block_reclaim",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4326.105,
        "ob_high": 4332.745,
        "displacement_high": 4335.585
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-16T11-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4349.655,
        "fvg_low": 4343.585,
        "fvg_high": 4346.655
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-16T13-00-00Z_long_breaker_continuation",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4335.165,
        "breaker_low": 4342.165,
        "breaker_high": 4342.44,
        "break_high": 4349.655
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-16T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4341.6,
        "impulse_high": 4354.95,
        "fib50": 4348.275,
        "fib62": 4346.673
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-16T13-00-00Z_long_order_block_reclaim",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4337.5,
        "ob_high": 4345.11,
        "displacement_high": 4349.76
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-16T14-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4317.745,
        "impulse_high": 4338.89,
        "fib50": 4328.3175,
        "fib62": 4330.8549
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-16T15-45-00Z_short_order_block_reclaim",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T15:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4331.53,
        "ob_high": 4338.89,
        "displacement_low": 4317.745
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-16T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-16",
      "timestamp": "2026-06-16T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4330.14,
        "impulse_high": 4336.255,
        "fib50": 4333.1975,
        "fib62": 4332.4637
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4329.58,
        "impulse_high": 4336.65,
        "fib50": 4333.115,
        "fib62": 4333.9634
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T00-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4328.615,
        "fvg_low": 4335.16,
        "fvg_high": 4336.445
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-17T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4328.615,
        "impulse_high": 4341.785,
        "fib50": 4335.2,
        "fib62": 4333.6196
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T01-15-00Z_long_breaker_continuation",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4328.615,
        "breaker_low": 4331.03,
        "breaker_high": 4340.17,
        "break_high": 4338.57
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-17T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4334.265,
        "impulse_high": 4349.605,
        "fib50": 4341.9349999999995,
        "fib62": 4340.0942000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4324.025,
        "impulse_high": 4334.18,
        "fib50": 4329.1025,
        "fib62": 4330.3211
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4321.04,
        "impulse_high": 4329.155,
        "fib50": 4325.0975,
        "fib62": 4326.0713
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4323.54,
        "impulse_high": 4335.79,
        "fib50": 4329.665,
        "fib62": 4328.195
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4335.67,
        "impulse_high": 4362.355,
        "fib50": 4349.0125,
        "fib62": 4345.8103
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T18-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T18:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4360.93,
        "impulse_high": 4382.615,
        "fib50": 4371.7725,
        "fib62": 4369.1703
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T18-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4277.305,
        "impulse_high": 4379.505,
        "fib50": 4328.405000000001,
        "fib62": 4340.669
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-17T20-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-17",
      "timestamp": "2026-06-17T20:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4226.455,
        "impulse_high": 4295.7,
        "fib50": 4261.077499999999,
        "fib62": 4269.3868999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-18T01-15-00Z_long_order_block_reclaim",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T01:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4308.07,
        "ob_high": 4315.39,
        "displacement_high": 4328.545
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-18T03-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T03:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4310.365,
        "impulse_high": 4325.41,
        "fib50": 4317.8875,
        "fib62": 4319.6929
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-18T05-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4324.91,
        "fvg_low": 4311.815,
        "fvg_high": 4315.59
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-18T12-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4254.85,
        "impulse_high": 4270.96,
        "fib50": 4262.905000000001,
        "fib62": 4264.8382
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-18T19-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4201.92,
        "impulse_high": 4219.29,
        "fib50": 4210.605,
        "fib62": 4212.6894
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-18T19-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-18",
      "timestamp": "2026-06-18T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4201.495,
        "fvg_low": 4208.935,
        "fvg_high": 4213.305
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-19T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-19",
      "timestamp": "2026-06-19T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4125.225,
        "impulse_high": 4147.645,
        "fib50": 4136.435,
        "fib62": 4139.125400000001
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-19T05-45-00Z_short_order_block_reclaim",
      "date": "2026-06-19",
      "timestamp": "2026-06-19T05:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4141.615,
        "ob_high": 4149.83,
        "displacement_low": 4133.49
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-19T07-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-19",
      "timestamp": "2026-06-19T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4146.05,
        "impulse_high": 4167.98,
        "fib50": 4157.014999999999,
        "fib62": 4159.6466
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-19T13-45-00Z_long_breaker_continuation",
      "date": "2026-06-19",
      "timestamp": "2026-06-19T13:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4142.035,
        "breaker_low": 4144.34,
        "breaker_high": 4150.735,
        "break_high": 4178.525
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-19T15-00-00Z_long_breaker_continuation",
      "date": "2026-06-19",
      "timestamp": "2026-06-19T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4142.695,
        "breaker_low": 4149.72,
        "breaker_high": 4150.305,
        "break_high": 4178.525
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-22T00-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-22",
      "timestamp": "2026-06-22T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4136.695,
        "impulse_high": 4156.965,
        "fib50": 4146.83,
        "fib62": 4149.2624
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-22T03-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-22",
      "timestamp": "2026-06-22T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4165.625,
        "impulse_high": 4201.24,
        "fib50": 4183.4325,
        "fib62": 4179.1587
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-22T13-30-00Z_short_order_block_reclaim",
      "date": "2026-06-22",
      "timestamp": "2026-06-22T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4188.865,
        "ob_high": 4197.13,
        "displacement_low": 4185.59
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-22T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-22",
      "timestamp": "2026-06-22T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4183.0,
        "impulse_high": 4205.8,
        "fib50": 4194.4,
        "fib62": 4191.664
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-22T22-30-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-22",
      "timestamp": "2026-06-22T22:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4194.86,
        "fvg_low": 4190.77,
        "fvg_high": 4191.275
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-23T00-00-00Z_short_order_block_reclaim",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4190.84,
        "ob_high": 4195.255,
        "displacement_low": 4186.875
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-23T00-30-00Z_short_breaker_continuation",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4194.86,
        "breaker_low": 4189.285,
        "breaker_high": 4193.055,
        "break_low": 4184.23
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-23T01-00-00Z_short_breaker_continuation",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4195.255,
        "breaker_low": 4190.84,
        "breaker_high": 4191.085,
        "break_low": 4184.23
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-23T01-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4198.605,
        "fvg_low": 4186.085,
        "fvg_high": 4190.19
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-23T05-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4114.825,
        "impulse_high": 4140.66,
        "fib50": 4127.7425,
        "fib62": 4130.8427
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-23T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4096.61,
        "impulse_high": 4119.585,
        "fib50": 4108.0975,
        "fib62": 4110.8544999999995
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-23T09-00-00Z_short_order_block_reclaim",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4113.84,
        "ob_high": 4123.035,
        "displacement_low": 4103.775
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-23T12-15-00Z_short_order_block_reclaim",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4118.42,
        "ob_high": 4126.36,
        "displacement_low": 4112.92
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-23T22-15-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-06-23",
      "timestamp": "2026-06-23T22:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4115.235,
        "fvg_low": 4108.56,
        "fvg_high": 4111.375
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-24T00-00-00Z_short_order_block_reclaim",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4111.375,
        "ob_high": 4114.565,
        "displacement_low": 4104.9
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-24T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4082.505,
        "impulse_high": 4102.51,
        "fib50": 4092.5075,
        "fib62": 4094.9081
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-24T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4052.07,
        "impulse_high": 4076.85,
        "fib50": 4064.46,
        "fib62": 4067.4336
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-24T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4071.48,
        "impulse_high": 4096.335,
        "fib50": 4083.9075000000003,
        "fib62": 4086.8901
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-24T07-30-00Z_long_order_block_reclaim",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4071.345,
        "ob_high": 4080.2,
        "displacement_high": 4097.375
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-24T08-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4073.795,
        "impulse_high": 4086.215,
        "fib50": 4080.005,
        "fib62": 4081.4954000000002
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-24T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4037.585,
        "impulse_high": 4058.615,
        "fib50": 4048.1,
        "fib62": 4050.6236
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-24T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-24",
      "timestamp": "2026-06-24T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4006.515,
        "impulse_high": 4048.86,
        "fib50": 4027.6875,
        "fib62": 4032.7689
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-25T01-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3995.175,
        "impulse_high": 4016.42,
        "fib50": 4005.7975,
        "fib62": 4008.3469
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-25T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3972.425,
        "impulse_high": 3996.08,
        "fib50": 3984.2525,
        "fib62": 3987.0911
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-25T06-15-00Z_long_order_block_reclaim",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 3969.19,
        "ob_high": 3977.29,
        "displacement_high": 4001.125
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-25T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 3983.315,
        "impulse_high": 4019.38,
        "fib50": 4001.3475,
        "fib62": 3997.0197000000003
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-25T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 3999.17,
        "impulse_high": 4028.415,
        "fib50": 4013.7925,
        "fib62": 4010.2831
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-25T18-30-00Z_long_order_block_reclaim",
      "date": "2026-06-25",
      "timestamp": "2026-06-25T18:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4026.025,
        "ob_high": 4035.465,
        "displacement_high": 4044.13
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-26T03-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T03:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 3982.95,
        "impulse_high": 4009.605,
        "fib50": 3996.2775,
        "fib62": 3999.4761
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-26T04-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4004.205,
        "impulse_high": 4023.355,
        "fib50": 4013.7799999999997,
        "fib62": 4016.078
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-26T07-30-00Z_long_order_block_reclaim",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4026.81,
        "ob_high": 4033.935,
        "displacement_high": 4039.875
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-26T09-15-00Z_long_order_block_reclaim",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T09:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4029.62,
        "ob_high": 4037.805,
        "displacement_high": 4041.615
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-26T12-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4029.59,
        "impulse_high": 4050.995,
        "fib50": 4040.2925,
        "fib62": 4037.7239
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-26T13-00-00Z_long_breaker_continuation",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4035.935,
        "breaker_low": 4046.65,
        "breaker_high": 4049.18,
        "break_high": 4055.76
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-26T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4035.935,
        "impulse_high": 4061.615,
        "fib50": 4048.7749999999996,
        "fib62": 4045.6934
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-26T13-00-00Z_long_order_block_reclaim",
      "date": "2026-06-26",
      "timestamp": "2026-06-26T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4035.935,
        "ob_high": 4049.18,
        "displacement_high": 4061.615
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-28T22-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-28",
      "timestamp": "2026-06-28T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4067.25,
        "impulse_high": 4091.205,
        "fib50": 4079.2275,
        "fib62": 4076.3529
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-28T22-00-00Z_long_order_block_reclaim",
      "date": "2026-06-28",
      "timestamp": "2026-06-28T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4067.25,
        "ob_high": 4072.325,
        "displacement_high": 4091.205
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-28T23-00-00Z_short_breaker_continuation",
      "date": "2026-06-28",
      "timestamp": "2026-06-28T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4091.205,
        "breaker_low": 4070.135,
        "breaker_high": 4070.81,
        "break_low": 4064.705
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-29T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4048.485,
        "impulse_high": 4074.33,
        "fib50": 4061.4075000000003,
        "fib62": 4058.3061000000002
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-29T01-00-00Z_long_order_block_reclaim",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4048.15,
        "ob_high": 4062.23,
        "displacement_high": 4070.145
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-29T07-30-00Z_long_order_block_reclaim",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4056.185,
        "ob_high": 4062.845,
        "displacement_high": 4066.485
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-29T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4043.875,
        "impulse_high": 4066.78,
        "fib50": 4055.3275000000003,
        "fib62": 4058.0761
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-29T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4024.44,
        "impulse_high": 4050.77,
        "fib50": 4037.605,
        "fib62": 4040.7646
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-29T19-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4012.02,
        "impulse_high": 4021.75,
        "fib50": 4016.885,
        "fib62": 4018.0526
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-29T19-15-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-06-29",
      "timestamp": "2026-06-29T19:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4005.435,
        "fvg_low": 4014.745,
        "fvg_high": 4016.305
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-06-30T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3942.1,
        "impulse_high": 3987.505,
        "fib50": 3964.8025,
        "fib62": 3970.2511
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3961.59,
        "impulse_high": 3979.645,
        "fib50": 3970.6175000000003,
        "fib62": 3972.7841
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T04-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3979.98,
        "impulse_high": 4006.97,
        "fib50": 3993.475,
        "fib62": 3996.7138
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T08-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T08:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4011.02,
        "impulse_high": 4034.325,
        "fib50": 4022.6724999999997,
        "fib62": 4019.8759
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T13-15-00Z_short_breaker_continuation",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4034.325,
        "breaker_low": 4029.85,
        "breaker_high": 4033.52,
        "break_low": 4012.47
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-06-30T13-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4009.455,
        "impulse_high": 4033.46,
        "fib50": 4021.4575,
        "fib62": 4018.5769
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4025.425,
        "impulse_high": 4063.48,
        "fib50": 4044.4525000000003,
        "fib62": 4039.8859
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-06-30T20-15-00Z_short_order_block_reclaim",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T20:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4020.985,
        "ob_high": 4023.36,
        "displacement_low": 4014.73
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-30T22-00-00Z_short_order_block_reclaim",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T22:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4013.95,
        "ob_high": 4020.925,
        "displacement_low": 4012.34
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-06-30T23-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-06-30",
      "timestamp": "2026-06-30T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4006.58,
        "impulse_high": 4013.625,
        "fib50": 4010.1025,
        "fib62": 4010.9479
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T00-30-00Z_short_order_block_reclaim",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4005.66,
        "ob_high": 4009.915,
        "displacement_low": 4001.37
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-01T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3975.775,
        "impulse_high": 3999.9,
        "fib50": 3987.8375,
        "fib62": 3990.7325
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T02-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3974.1,
        "impulse_high": 3988.77,
        "fib50": 3981.435,
        "fib62": 3983.1954
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T06-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3963.385,
        "impulse_high": 3977.605,
        "fib50": 3970.495,
        "fib62": 3972.2014
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T07-15-00Z_short_order_block_reclaim",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T07:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 3969.15,
        "ob_high": 3973.705,
        "displacement_low": 3960.435
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-01T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3960.275,
        "impulse_high": 3973.905,
        "fib50": 3967.09,
        "fib62": 3968.7256
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 3997.975,
        "impulse_high": 4028.715,
        "fib50": 4013.3450000000003,
        "fib62": 4009.6562
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T16-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4041.685,
        "impulse_high": 4108.205,
        "fib50": 4074.9449999999997,
        "fib62": 4066.9626
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-01T19-00-00Z_short_order_block_reclaim",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T19:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4067.285,
        "ob_high": 4070.85,
        "displacement_low": 4061.18
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-01T23-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-07-01",
      "timestamp": "2026-07-01T23:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4045.185,
        "fvg_low": 4039.515,
        "fvg_high": 4039.98
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-02T00-00-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4030.895,
        "fvg_low": 4037.12,
        "fvg_high": 4040.495
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-02T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4030.895,
        "impulse_high": 4048.545,
        "fib50": 4039.7200000000003,
        "fib62": 4037.602
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-02T01-30-00Z_long_order_block_reclaim",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4038.14,
        "ob_high": 4046.825,
        "displacement_high": 4052.795
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-02T04-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T04:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4055.51,
        "impulse_high": 4067.31,
        "fib50": 4061.41,
        "fib62": 4059.994
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-02T06-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T06:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4066.11,
        "impulse_high": 4079.92,
        "fib50": 4073.0150000000003,
        "fib62": 4071.3578
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-02T09-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4061.475,
        "impulse_high": 4078.0,
        "fib50": 4069.7375,
        "fib62": 4067.7545
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-02T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4110.125,
        "impulse_high": 4144.08,
        "fib50": 4127.1025,
        "fib62": 4123.0279
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-02T16-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-02",
      "timestamp": "2026-07-02T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4064.495,
        "impulse_high": 4140.525,
        "fib50": 4102.51,
        "fib62": 4093.3864
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-03T07-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-03",
      "timestamp": "2026-07-03T07:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4164.53,
        "impulse_high": 4174.515,
        "fib50": 4169.5225,
        "fib62": 4168.3243
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-03T08-15-00Z_long_order_block_reclaim",
      "date": "2026-07-03",
      "timestamp": "2026-07-03T08:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4174.865,
        "ob_high": 4181.665,
        "displacement_high": 4185.915
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-03T11-45-00Z_long_order_block_reclaim",
      "date": "2026-07-03",
      "timestamp": "2026-07-03T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4174.8,
        "ob_high": 4178.91,
        "displacement_high": 4183.95
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-03T13-15-00Z_short_order_block_reclaim",
      "date": "2026-07-03",
      "timestamp": "2026-07-03T13:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4172.395,
        "ob_high": 4177.68,
        "displacement_low": 4164.68
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-05T23-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-05",
      "timestamp": "2026-07-05T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4186.675,
        "impulse_high": 4202.225,
        "fib50": 4194.450000000001,
        "fib62": 4192.584
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-06T00-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-06",
      "timestamp": "2026-07-06T00:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4166.94,
        "impulse_high": 4176.58,
        "fib50": 4171.76,
        "fib62": 4170.6032
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-06T01-00-00Z_long_order_block_reclaim",
      "date": "2026-07-06",
      "timestamp": "2026-07-06T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4186.745,
        "ob_high": 4191.665,
        "displacement_high": 4202.225
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-06T06-00-00Z_short_order_block_reclaim",
      "date": "2026-07-06",
      "timestamp": "2026-07-06T06:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4149.645,
        "ob_high": 4160.705,
        "displacement_low": 4144.83
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-06T15-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-06",
      "timestamp": "2026-07-06T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4145.1,
        "impulse_high": 4158.525,
        "fib50": 4151.8125,
        "fib62": 4153.4235
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-07T00-45-00Z_short_order_block_reclaim",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T00:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4152.125,
        "ob_high": 4160.79,
        "displacement_low": 4148.5
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-07T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4125.7,
        "impulse_high": 4148.07,
        "fib50": 4136.885,
        "fib62": 4139.569399999999
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-07T02-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T02:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4132.4,
        "impulse_high": 4146.235,
        "fib50": 4139.317499999999,
        "fib62": 4137.6573
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-07T08-30-00Z_long_order_block_reclaim",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4124.64,
        "ob_high": 4133.665,
        "displacement_high": 4139.395
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-07T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4121.94,
        "impulse_high": 4139.305,
        "fib50": 4130.6224999999995,
        "fib62": 4132.7063
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-07T14-00-00Z_short_order_block_reclaim",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4163.66,
        "ob_high": 4180.52,
        "displacement_low": 4156.16
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-07T14-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T14:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4139.605,
        "impulse_high": 4158.36,
        "fib50": 4148.9825,
        "fib62": 4146.7319
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-07T19-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-07",
      "timestamp": "2026-07-07T19:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY PM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4092.295,
        "impulse_high": 4127.88,
        "fib50": 4110.0875,
        "fib62": 4114.3577000000005
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-08T04-15-00Z_long_order_block_reclaim",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T04:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4113.42,
        "ob_high": 4120.865,
        "displacement_high": 4130.82
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-08T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4052.285,
        "impulse_high": 4092.115,
        "fib50": 4072.2,
        "fib62": 4076.9795999999997
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-08T11-30-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4041.55,
        "fvg_low": 4054.65,
        "fvg_high": 4059.435
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-08T14-15-00Z_long_order_block_reclaim",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T14:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4047.825,
        "ob_high": 4054.65,
        "displacement_high": 4066.07
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-08T16-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4051.645,
        "impulse_high": 4071.585,
        "fib50": 4061.615,
        "fib62": 4064.0078
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-08T16-30-00Z_short_order_block_reclaim",
      "date": "2026-07-08",
      "timestamp": "2026-07-08T16:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4051.645,
        "ob_high": 4065.545,
        "displacement_low": 4035.395
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-09T01-30-00Z_short_breaker_continuation",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4090.02,
        "breaker_low": 4073.915,
        "breaker_high": 4087.615,
        "break_low": 4071.645
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-09T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4065.17,
        "impulse_high": 4078.895,
        "fib50": 4072.0325000000003,
        "fib62": 4073.6795
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-09T02-30-00Z_short_breaker_continuation",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4087.695,
        "breaker_low": 4076.185,
        "breaker_high": 4076.185,
        "break_low": 4071.645
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-09T05-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4064.525,
        "impulse_high": 4081.715,
        "fib50": 4073.12,
        "fib62": 4075.1828
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-09T14-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4106.875,
        "impulse_high": 4127.445,
        "fib50": 4117.16,
        "fib62": 4114.6916
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-09T17-15-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-07-09",
      "timestamp": "2026-07-09T17:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "NY PM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4125.095,
        "fvg_low": 4128.995,
        "fvg_high": 4129.38
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-10T01-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T01:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4114.545,
        "impulse_high": 4128.47,
        "fib50": 4121.5075,
        "fib62": 4119.8365
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-10T01-45-00Z_short_breaker_continuation",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T01:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4128.47,
        "breaker_low": 4121.445,
        "breaker_high": 4123.195,
        "break_low": 4114.545
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-10T02-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T02:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4116.12,
        "impulse_high": 4128.995,
        "fib50": 4122.5575,
        "fib62": 4121.0125
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-10T07-45-00Z_short_order_block_reclaim",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T07:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4108.8,
        "ob_high": 4115.52,
        "displacement_low": 4105.425
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-10T09-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T09:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4094.86,
        "impulse_high": 4105.765,
        "fib50": 4100.3125,
        "fib62": 4101.6211
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-10T10-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T10:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4103.305,
        "impulse_high": 4109.65,
        "fib50": 4106.4775,
        "fib62": 4107.2389
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-10T11-30-00Z_short_order_block_reclaim",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4104.485,
        "ob_high": 4108.2,
        "displacement_low": 4100.19
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-10T12-15-00Z_long_order_block_reclaim",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T12:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4102.195,
        "ob_high": 4108.045,
        "displacement_high": 4117.585
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-10T13-30-00Z_short_breaker_continuation",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_high": 4117.585,
        "breaker_low": 4101.11,
        "breaker_high": 4102.465,
        "break_low": 4094.535
      },
      "notes": "Bearish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-10T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4085.855,
        "impulse_high": 4106.765,
        "fib50": 4096.31,
        "fib62": 4098.8192
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-10T13-30-00Z_short_order_block_reclaim",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4098.865,
        "ob_high": 4106.42,
        "displacement_low": 4085.855
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-10T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-10",
      "timestamp": "2026-07-10T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4072.8,
        "impulse_high": 4107.895,
        "fib50": 4090.3475000000003,
        "fib62": 4094.5589000000004
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-12T23-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-12",
      "timestamp": "2026-07-12T23:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4069.68,
        "impulse_high": 4086.755,
        "fib50": 4078.2174999999997,
        "fib62": 4080.2665
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-13T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-13",
      "timestamp": "2026-07-13T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4074.525,
        "impulse_high": 4091.295,
        "fib50": 4082.91,
        "fib62": 4084.9224
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-14T00-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3983.545,
        "impulse_high": 4004.93,
        "fib50": 3994.2375,
        "fib62": 3996.8037
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-14T04-45-00Z_long_order_block_reclaim",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T04:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4013.98,
        "ob_high": 4017.5,
        "displacement_high": 4023.575
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-14T06-15-00Z_long_order_block_reclaim",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T06:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4020.2,
        "ob_high": 4024.12,
        "displacement_high": 4034.25
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-14T12-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4024.525,
        "impulse_high": 4031.915,
        "fib50": 4028.2200000000003,
        "fib62": 4027.3332
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-14T15-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T15:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4029.375,
        "impulse_high": 4104.05,
        "fib50": 4066.7125,
        "fib62": 4057.7515
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-14T23-15-00Z_long_ict_sweep_mss_fvg",
      "date": "2026-07-14",
      "timestamp": "2026-07-14T23:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_displacement",
        "bullish_fvg_candidate"
      ],
      "levels": {
        "sweep_low": 4046.925,
        "fvg_low": 4050.3,
        "fvg_high": 4051.42
      },
      "notes": "Sweep + displacement + M15 bullish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-15T00-30-00Z_long_breaker_continuation",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4046.925,
        "breaker_low": 4047.68,
        "breaker_high": 4054.125,
        "break_high": 4056.975
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-15T00-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4051.05,
        "impulse_high": 4058.315,
        "fib50": 4054.6825,
        "fib62": 4053.8107
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-15T00-30-00Z_long_order_block_reclaim",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T00:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4051.05,
        "ob_high": 4056.13,
        "displacement_high": 4058.315
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-15T01-30-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_bullish"
      ],
      "levels": {
        "impulse_low": 4046.925,
        "impulse_high": 4054.125,
        "fib50": 4050.525,
        "fib62": 4049.661
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-15T05-00-00Z_short_ict_sweep_mss_fvg",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T05:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "ICT Sweep + MSS + FVG",
      "strategy_family": "sweep_mss_fvg",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 62,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "buyside_sweep",
        "bearish_displacement",
        "bearish_fvg_candidate"
      ],
      "levels": {
        "sweep_high": 4036.28,
        "fvg_low": 4028.745,
        "fvg_high": 4030.4
      },
      "notes": "Sweep + displacement + M15 bearish FVG candidate; confirm MSS/FVG replay manually."
    },
    {
      "id": "candidate_v2_2026-07-15T05-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4024.865,
        "impulse_high": 4036.28,
        "fib50": 4030.5725,
        "fib62": 4031.9423
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-15T05-30-00Z_short_order_block_reclaim",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T05:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4030.4,
        "ob_high": 4034.555,
        "displacement_low": 4025.105
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-15T08-15-00Z_short_order_block_reclaim",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T08:15:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "London",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4021.535,
        "ob_high": 4026.92,
        "displacement_low": 4017.475
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-15T08-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T08:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4020.165,
        "impulse_high": 4034.485,
        "fib50": 4027.325,
        "fib62": 4029.0434
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-15T13-00-00Z_long_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T13:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4039.425,
        "impulse_high": 4071.595,
        "fib50": 4055.51,
        "fib62": 4051.6496
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bullish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-15T13-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-15",
      "timestamp": "2026-07-15T13:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4054.105,
        "impulse_high": 4074.175,
        "fib50": 4064.1400000000003,
        "fib62": 4066.5484
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T01-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 58,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_range"
      ],
      "levels": {
        "impulse_low": 4034.075,
        "impulse_high": 4050.735,
        "fib50": 4042.4049999999997,
        "fib62": 4044.4042
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T01-30-00Z_short_order_block_reclaim",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T01:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Short",
      "session": "Asia",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4041.11,
        "ob_high": 4050.735,
        "displacement_low": 4034.075
      },
      "notes": "Bearish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-16T07-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T07:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "London",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4023.925,
        "impulse_high": 4030.855,
        "fib50": 4027.3900000000003,
        "fib62": 4028.2216
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T11-00-00Z_long_breaker_continuation",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T11:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4023.03,
        "breaker_low": 4024.63,
        "breaker_high": 4028.47,
        "break_high": 4036.62
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-16T11-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T11:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "Other",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4021.375,
        "impulse_high": 4030.25,
        "fib50": 4025.8125,
        "fib62": 4026.8775
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T11-45-00Z_long_order_block_reclaim",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T11:45:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "Other",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 4021.375,
        "ob_high": 4028.19,
        "displacement_high": 4036.14
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    },
    {
      "id": "candidate_v2_2026-07-16T12-00-00Z_long_breaker_continuation",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T12:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Breaker Continuation",
      "strategy_family": "breaker_continuation",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 57,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "sellside_sweep",
        "bullish_breaker_candidate",
        "breaker_retest"
      ],
      "levels": {
        "sweep_low": 4021.375,
        "breaker_low": 4028.19,
        "breaker_high": 4028.19,
        "break_high": 4037.98
      },
      "notes": "Bullish breaker continuation candidate; validate failed OB/breaker manually."
    },
    {
      "id": "candidate_v2_2026-07-16T12-30-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T12:30:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 4012.915,
        "impulse_high": 4043.36,
        "fib50": 4028.1375,
        "fib62": 4031.7909
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T14-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T14:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3981.915,
        "impulse_high": 4008.485,
        "fib50": 3995.2,
        "fib62": 3998.3884000000003
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T15-00-00Z_short_aryy_htf_narrative_fib_50_62",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T15:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Aryy HTF Narrative Fib 50/62",
      "strategy_family": "fib_50_62",
      "direction": "Short",
      "session": "NY AM",
      "timeframe": "M30",
      "entry_timeframe": "M15/M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 68,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bearish_impulse",
        "fib_50_62_retrace",
        "htf_bearish"
      ],
      "levels": {
        "impulse_low": 3990.58,
        "impulse_high": 4029.845,
        "fib50": 4010.2124999999996,
        "fib62": 4014.9242999999997
      },
      "notes": "HTF/Fib 50-62 retracement candidate after bearish displacement; validate PD array overlap manually."
    },
    {
      "id": "candidate_v2_2026-07-16T16-00-00Z_long_order_block_reclaim",
      "date": "2026-07-16",
      "timestamp": "2026-07-16T16:00:00Z",
      "symbol": "XAUUSD",
      "strategy": "Order Block Reclaim",
      "strategy_family": "order_block_reclaim",
      "direction": "Long",
      "session": "NY AM",
      "timeframe": "M15",
      "entry_timeframe": "M5",
      "narrative": "TBD manual replay",
      "htf_context": "TBD manual replay",
      "ltf_trigger": "Mechanical v2 candidate; manual TradingView replay required",
      "entry": null,
      "stop": null,
      "target": null,
      "fib": "TBD",
      "pd": "TBD",
      "candidate_score": 60,
      "confidence": "Unreviewed",
      "status": "unreviewed",
      "requires_manual_replay": true,
      "scanner_flags": [
        "bullish_ob_candidate",
        "displacement_break",
        "ob_retest"
      ],
      "levels": {
        "ob_low": 3989.47,
        "ob_high": 3998.79,
        "displacement_high": 4017.03
      },
      "notes": "Bullish OB reclaim/retest candidate; validate OB quality and liquidity context manually."
    }
  ]
}
