{
  "as_of": "2026-06-03T03:20:38.099329+00:00",
  "baseline": {
    "label": "live-shadow",
    "confidence_floor": 0.74,
    "edge_floor": 0.03,
    "max_session_loss_usd": 100.0,
    "max_open_positions": 20,
    "n_trades": 18,
    "realized_pnl_usd": -142.24
  },
  "gates": [
    {
      "gate": "confidence_too_low",
      "n_cycles_fired_live": 34,
      "n_trades_unlocked": 8,
      "n_winners": 1,
      "n_losers": 7,
      "unlocked_pnl_usd": -94.41,
      "unlocked_roi_pct": -23.6,
      "verdict": "saves_alpha",
      "relaxation": "confidence_floor = 0.0",
      "note": null
    },
    {
      "gate": "cap_reached",
      "n_cycles_fired_live": 155,
      "n_trades_unlocked": 0,
      "n_winners": 0,
      "n_losers": 0,
      "unlocked_pnl_usd": 0,
      "unlocked_roi_pct": null,
      "verdict": "no_trades_unlocked",
      "relaxation": "max_open_positions = unbounded",
      "note": null
    },
    {
      "gate": "no_candidates_above_min_edge",
      "n_cycles_fired_live": 4,
      "n_trades_unlocked": 2,
      "n_winners": 1,
      "n_losers": 1,
      "unlocked_pnl_usd": -3.91,
      "unlocked_roi_pct": -3.91,
      "verdict": "neutral",
      "relaxation": "edge_floor = 0.0",
      "note": null
    },
    {
      "gate": "session_loss_cap",
      "n_cycles_fired_live": 16,
      "n_trades_unlocked": 70,
      "n_winners": 25,
      "n_losers": 32,
      "unlocked_pnl_usd": -182.85,
      "unlocked_roi_pct": -5.22,
      "verdict": "saves_alpha",
      "relaxation": "max_session_loss_usd = unbounded",
      "note": null
    },
    {
      "gate": "too_few_new_items",
      "n_cycles_fired_live": 1154,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "fires before Claude analyzer; counterfactual requires re-running the model on historical inputs."
    },
    {
      "gate": "source_diversity_gate",
      "n_cycles_fired_live": null,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "fires before Claude analyzer; counterfactual requires re-running the model on historical inputs."
    },
    {
      "gate": "analyzer_timeout",
      "n_cycles_fired_live": 27,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "fires before Claude analyzer; counterfactual requires re-running the model on historical inputs."
    },
    {
      "gate": "analyzer_error",
      "n_cycles_fired_live": null,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "fires before Claude analyzer; counterfactual requires re-running the model on historical inputs."
    },
    {
      "gate": "signal_skip",
      "n_cycles_fired_live": null,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "fires before Claude analyzer; counterfactual requires re-running the model on historical inputs."
    },
    {
      "gate": "insufficient_balance",
      "n_cycles_fired_live": null,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "live-bot-only gate; backtest engine does not model it."
    },
    {
      "gate": "tier_gate_75",
      "n_cycles_fired_live": null,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "live-bot-only gate; backtest engine does not model it."
    },
    {
      "gate": "tier_gate_80",
      "n_cycles_fired_live": 20,
      "n_trades_unlocked": null,
      "n_winners": null,
      "n_losers": null,
      "unlocked_pnl_usd": null,
      "unlocked_roi_pct": null,
      "verdict": "not_modelable",
      "relaxation": null,
      "note": "live-bot-only gate; backtest engine does not model it."
    }
  ],
  "notes": "Negative unlocked PnL = the gate has been saving you money. Positive unlocked PnL = the gate has been blocking profitable trades. Verdict thresholds: |pnl| > $5 to flag direction; below that, 'neutral'. n_cycles_fired_live is from text-log parse; null when the live log isn't reachable."
}