Fortress toolchain - predicted vs realized

Calibration Report

Scored 2026-09-26 cc_scanner 9,509 picks logged - 8,003 matured fortress_fight 2914 graded - span 85d fortress_rebuild 406 resolved wall 0m 23s (23.1s)

Predicted vs realized, across every calibration ledger

11,323 graded predictions across cc_scanner, fortress_fight, and fortress_rebuild, scored against actual daily highs and closes. Bars and dots compare what the models claimed to what the market did.

cc_scanner - survival
86% 90%
predicted vs realized, 8,003 matured picks across all sigma bands.
fortress_fight - touch
38% 34%
raw factor 0.91 over 2914 expired contracts.
fortress_fight - breach
441 breaches
raw breach factor 0.84 (predicted rate vs realized) over 2914 graded contracts.
fortress_rebuild - OTM at expiry
82% 83%
339 of 406 resolved. Touch: 36% predicted, 39% realized.

fortress_fight: touch calibration curve

Each dot is a predicted-touch bucket of expired contracts (dot size = count, hover for exact rates). On the dashed line, prediction equals reality. Dots below the line = the engine over-warned; above = under-warned. Also on the books: 27 in progress (censored), 0 unexpired early touches (preview only).

perfectly calibrated 0-10% bucket - n=406 - predicted 4.0% - realized 2.7% 10-20% bucket - n=608 - predicted 16.4% - realized 13.8% 20-30% bucket - n=370 - predicted 24.2% - realized 24.9% 30-40% bucket - n=332 - predicted 34.5% - realized 32.5% 40-50% bucket - n=389 - predicted 44.3% - realized 40.9% 50-60% bucket - n=190 - predicted 55.0% - realized 46.3% 60-70% bucket - n=109 - predicted 64.9% - realized 58.7% 70-80% bucket - n=215 - predicted 75.8% - realized 68.4% 80-90% bucket - n=187 - predicted 84.5% - realized 80.2% 90-100% bucket - n=108 - predicted 96.5% - realized 89.8% 0 25 50 75 100 0 25 50 75 100 Predicted touch % Realized touch %

Correction-factor arming gates

Raw factors are written every grading pass; the engine only applies them when all four gates pass.

✓
Graded contracts ≥ 30
2914 / 30
✓
Breach events ≥ 10
441 / 10
✓
Expiry weeks ≥ 6 (one cycle teaches one regime)
12 / 6
✓
History span ≥ 60d (must see vol vary)
85d / 60d
✕
Challenger beats raw out of sample (champion check)
raw
MetricNPredictedRealizedRaw factor
Touch291437.5%34.3%0.91
Breach2914realized 441 breach event(s)0.84
IV haircutcorrect the input: touch model on iv × h0.94
Champion/challenger (rolling-origin walk-forward, 11 folds, 2601 pooled out-of-sample rows): flat Brier 0.1763 / ECE 0.0785; haircut Brier 0.1746 / ECE 0.0779; logit Brier 0.1735 / ECE 0.0740; raw Brier 0.1682 / ECE 0.0272; trend Brier 0.1746 / ECE 0.0893 (experimental, loses to raw) → winner raw. Admission needs Brier no worse than raw AND ECE better; ties go to raw; a correction only arms while it wins. Experimental shapes are scored but never armed.

fortress_fight: week by week

Each row is one expiry week of fully graded contracts. Ratio = realized ÷ predicted touch: below 1.0 the model over-warned that week, above 1.0 it under-warned. A correction that would have looked right on the first rows is judged by the later ones.

1.0 = calibrated2026-W28: n=313, predicted 34.3%, realized 24.0%, ratio 0.70W282026-W29: n=574, predicted 39.6%, realized 20.2%, ratio 0.51W292026-W30: n=530, predicted 41.8%, realized 38.7%, ratio 0.93W302026-W31: n=257, predicted 34.8%, realized 36.6%, ratio 1.05W312026-W32: n=368, predicted 43.4%, realized 50.3%, ratio 1.16W322026-W33: n=212, predicted 36.2%, realized 40.6%, ratio 1.12W332026-W34: n=120, predicted 27.3%, realized 43.3%, ratio 1.59W342026-W35: n=114, predicted 29.6%, realized 24.6%, ratio 0.83W352026-W36: n=102, predicted 33.8%, realized 38.2%, ratio 1.13W362026-W37: n=83, predicted 32.5%, realized 34.9%, ratio 1.07W372026-W38: n=155, predicted 34.7%, realized 32.9%, ratio 0.95W382026-W39: n=86, predicted 34.3%, realized 46.5%, ratio 1.36W39
WeekNPred touchReal touchRatioPred breachReal breach
2026-W2831334.3%24.0%0.7016.5%6.7%
2026-W2957439.6%20.2%0.5119.1%1.6%
2026-W3053041.8%38.7%0.9320.2%10.0%
2026-W3125734.8%36.6%1.0516.8%18.7%
2026-W3236843.4%50.3%1.1620.3%38.9%
2026-W3321236.2%40.6%1.1217.2%19.3%
2026-W3412027.3%43.3%1.5913.2%31.7%
2026-W3511429.6%24.6%0.8314.3%7.9%
2026-W3610233.8%38.2%1.1316.3%24.5%
2026-W378332.5%34.9%1.0715.8%14.5%
2026-W3815534.7%32.9%0.9517.0%16.1%
2026-W398634.3%46.5%1.3616.7%19.8%

Touch by prior-20-day trend (ex-ante, experimental)

Rows bucket each graded contract by its ticker’s return over the 20 trading days BEFORE the forecast, the one trend fact knowable at pick time. If realized splits by bucket while predicted does not, the model is trend-blind. Walk-forward verdict on the trend challenger: loses to raw out of sample.

Prior 20d trendNPredicted touchRealized touchGap
down >10%140439%36%-4 pts
flat +/-10%131736%34%-2 pts
up >10%18333%25%-8 pts

Scoring-run history

One row per weekly grading pass (cumulative sample at that date). Watch the raw factors converge and the winner column stay on raw.

RunFight NTouch pred / realRaw touch factorRaw breach factorWinnerScanner NScanner surv pred / realRebuild NRebuild touch pred / real
2026-09-03248938% / 34%0.890.80raw663986% / 88%30035% / 35%
2026-09-05259038% / 34%0.890.82raw694086% / 89%31535% / 35%
2026-09-12267338% / 34%0.900.82raw710386% / 89%33334% / 35%
2026-09-19282838% / 33%0.890.81raw762487% / 90%37636% / 38%
2026-09-26291438% / 34%0.910.84raw800386% / 90%40636% / 39%

cc_scanner: sigma bands, then ticker by ticker

8,003 matured picks graded against daily highs (9,509 logged since 20260703). Survival = finishing OTM. Red touch bars: realized ran hotter than predicted.

Predicted Realized

Survival % by sigma band

0.0-0.5σ - n=636
64% → 80%
0.5-1.0σ - n=2422
79% → 84%
1.0-1.5σ - n=2179
88% → 92%
>1.5σ - n=2766
97% → 95%

Touch % by sigma band

0.0-0.5σ - n=636
57% → 70%
0.5-1.0σ - n=2422
36% → 33%
1.0-1.5σ - n=2179
23% → 17%
>1.5σ - n=2766
7% → 8%

Predicted vs realized touch by ticker (min 3 matured picks)

Sorted by how hot reality ran vs the model. Red connectors: realized above predicted (model too relaxed). Gray connectors: realized below predicted (model too scared).

Ticker
0% — predicted • realized — 100%
Gap (real - pred)
ETHA
+74 ▲ n=34
AAPL
+66 ▲ n=3
NEM
+44 ▲ n=224
MSTR
+30 ▲ n=38
SNDK
+28 ▲ n=61
BMNR
+25 ▲ n=278
IBIT
+20 ▲ n=12
META
+16 ▲ n=288
DELL
+15 ▲ n=299
AMZN
+12 ▲ n=250
AMD
+12 ▲ n=70
NVDA
+9 ▲ n=203
SPY
+9 ▲ n=241
IGV
+8 ▲ n=259
MDB
+8 ▲ n=252
RIOT
+5 ▲ n=192
NOW
+2 ▲ n=290
GOOG
0 n=826
COPX
-2 n=249
GLD
-2 n=188
SOFI
-3 n=152
RKLB
-4 n=27
HIMS
-6 n=301
COIN
-10 n=507
CRWV
-11 n=73
MU
-15 n=615
QCOM
-16 n=204
ENPH
-16 n=151
INTC
-17 n=266
SPCX
-18 n=182
APP
-18 n=194
GLXY
-19 n=156
IREN
-22 n=608
CLSK
-23 n=163
MARA
-23 n=147

fortress_rebuild: CC-survival forecasts

Rebuild-local ledger (same calibration machinery as fight): 492 predictions since 2026-07-03, 406 resolved. Buckets group picks by the survival odds the model claimed.

Predicted survival Realized OTM rate
0-60% - n=22
53% → 86%
60-70% - n=33
67% → 73%
70-80% - n=82
76% → 76%
80-90% - n=162
85% → 82%
90-100% - n=107
94% → 94%
MetricValue
Predictions logged492
Resolved (expiry passed)406
Predicted touch (avg)36.5%
Realized touch38.8%
Touch grades from exact daily highs398 / 405

Diversification complements

Out-of-sample search for tickers that zig when the $1M model book zags — low correlation, positive behaviour on the book's worst days, and enough volatility to sell covered calls against. 63 nights logged (2026-07-24 → 2026-09-26).

No confident add yet — 64 days of history, needs ≥60 nights at 70% persistence and 60% out-of-sample delivery. Candidates are ranked below; a complement moves opposite the model book (corr ≤ 0.30) AND still pays sellable CC premium (vol ≥ 25%).
TickerGroupNightsPersistMed corrCrisis dayOOS deliverVerdict
HCCCoal (ENERGY)3697%+0.23-1.51%24%WATCH
VKTXGLP-1 (HEALTH)3697%+0.20-0.27%6%WATCH
BILLFintech (TECH)3597%-0.25+2.56%100%WATCH
CAVARestaurants (CONS)3597%+0.09-0.58%12%WATCH
EXPETravel (CONS)3597%-0.22+2.26%100%WATCH
IHIMedTech (HEALTH)3597%-0.33+1.24%100%WATCH
LDOSDef Tech (INDL)3597%-0.04+0.01%100%WATCH
LLYGLP-1 (HEALTH)3597%-0.32+0.74%100%WATCH
NFLXInternet (TECH)3597%-0.12+1.26%100%WATCH
NVOGLP-1 (HEALTH)3597%-0.22+0.97%82%WATCH
PARRRefiners (ENERGY)3597%+0.01+1.66%88%WATCH
SNOWSoftware (TECH)3595%+0.18+0.78%6%WATCH
TOSTFintech (TECH)3597%-0.14+1.53%81%WATCH
UBERInternet (TECH)3597%-0.04+0.27%100%WATCH
VGMidstream (ENERGY)3597%-0.18+1.10%100%WATCH
XOPOil E&P (ENERGY)3597%-0.21+0.76%100%WATCH
ABNBInternet (TECH)3497%+0.04+1.19%100%WATCH
DKNGCasinos (CONS)3497%-0.09+0.16%27%WATCH
FLUTCasinos (CONS)3497%-0.20+0.31%94%WATCH
ZSCyber (TECH)3497%+0.02+0.83%19%WATCH
OIHOil Svcs (ENERGY)3286%+0.24-0.78%80%WATCH
AMGNGLP-1 (HEALTH)3186%-0.18+0.86%100%WATCH
ZBRARobotics (INDL)2978%+0.23+0.51%20%WATCH
AMRCoal (ENERGY)2878%+0.25-2.31%69%WATCH
HONRobotics (INDL)2876%+0.19-0.90%0%WATCH
NRGPower (ENERGY)2091%+0.24-2.45%0%WATCH
MDBSoftware (TECH)2095%+0.14+0.21%100%WATCH
XHBBuilders (CONS)1986%+0.23-0.41%0%WATCH
SQMRare Earth (MATL)1995%+0.24-1.67%youngWATCH
TXSteel (MATL)1995%+0.23-0.61%youngWATCH
WFRDOil Svcs (ENERGY)1995%+0.22-1.74%youngWATCH
XYZFintech (TECH)1895%+0.12+0.58%youngWATCH
AFRMFintech (TECH)12100%+0.28-1.05%youngWATCH
FTNTCyber (TECH)2569%+0.19-0.17%29%noise
PLTRDef Tech (INDL)2467%+0.21-0.09%9%noise
BTUCoal (ENERGY)38%+0.22-2.69%0%noise
CNRCoal (ENERGY)2366%+0.23-1.95%18%noise
PANWCyber (TECH)1232%+0.23-0.73%0%noise
CRWDCyber (TECH)1232%+0.23-0.50%0%noise
JETSAirlines (CONS)1067%+0.24+0.04%youngnoise
CIBRCyber (TECH)889%+0.26-0.29%youngnoise
“Crisis day” = mean candidate return on the model composite's worst days (average correlation lies in a crash; this is the all-weather test). “OOS deliver” = share of matured claims whose low correlation held in the 30 days AFTER the flag. 33 WATCH.
Generated by calibration_report.py (weekly cron, Sat 08:30 SGT). Sources: runs/cc_scanner/PORTFOLIO/ledger_calibration.json, runs/fight/calib_factors.json, runs/rebuild/calibration_stats.json. Graders grade only fully expired windows; duplicate nightly re-forecasts of the same contract are deduped to one bet. This page mirrors the graders' published numbers and derives nothing of its own.