{
  "review_id": "2026-07-21-riskcap-forward-comparison",
  "window": {
    "start": "2026-07-16T03:18:00Z",
    "end": "2026-07-17T03:48:49Z"
  },
  "sources": [
    "/data/freqtrade/user_data/tradesv3-v5.sqlite",
    "/data/freqtrade/user_data/tradesv3-riskcap-active-forward.sqlite",
    "freqtrade-riskcap-active-forward.log",
    "config-riskcap-forward.json"
  ],
  "chart": "riskcap_forward_comparison.png",
  "analyzed_candles": "unavailable for this retired window from the live 1000-bar API horizon",
  "raw": {
    "d48": {
      "carried": 2,
      "new_entries": 1,
      "exits": 1,
      "realized_exit_usdt": 6.81500118
    },
    "riskcap_active21": {
      "carried": 0,
      "new_entries": 6,
      "closed_new": 4,
      "realized_usdt": -6.98326693,
      "winrate": 0.25,
      "pf": 0.4931983018950026
    }
  },
  "causal_comparison_valid": false,
  "confounders": [
    "pair universe 12 vs 21",
    "starting exposure two carried positions vs empty",
    "RiskCap sizing and active-pool universe changed together",
    "no matched new entries in the preserved window"
  ],
  "visual_review": {
    "inspected_at": "2026-07-21T09:09:36Z",
    "status": "passed",
    "notes": [
      "The event timeline is readable and shows D48 carrying BNB and ZEC at the start while RiskCap starts empty.",
      "The realized-PnL bars agree with the database results: D48 +6.82 USDT and RiskCap-active21 -6.98 USDT.",
      "RiskCap entries are PUMP, EVAA, BTC, DODOX, HYPE, and XRP while D48's only new entry is ETH; there are no matched entries.",
      "The stake panel confirms sizing differences, but cross-pair volatility prevents direct stake-size attribution.",
      "No missing labels or overlapping carried-position annotations remain after rerendering."
    ]
  }
}
