Every ML prediction we make settles after the horizon closes. Below is the actual hit rate, Brier score, and calibration gap per model — including the misses. Public, no login, refreshes on filter change.
…
predicted_direction matched the realized direction over the prediction horizon (typically 5 trading days). Baseline = 50% (coin flip).confidence and outcome (0 perfect, 0.25 random). Lower is better.|avg_confidence − hit_rate|. Near zero = stated confidence matches reality. > 0.10 = overconfident.What this does NOT measure: slippage, fees, taxes, fill quality, position-sizing impact. Calibration shows whether the signal direction was right. Net P&L after execution is a separate question — see the backtester (5 bps slippage default) and /api/calibration raw data for reproducibility.
Settlement cadence: the accuracy tracker (src/modules/ml/accuracy_tracker.js) settles rows ~6 hours after the prediction horizon closes. Fresh predictions don't appear here until the horizon has elapsed plus that 6h buffer.