Fortress toolchain - predicted vs realized

Calibration Report

Scored 2026-10-31 cc_scanner 11,894 picks logged - 10,532 matured fortress_fight 3551 graded - span 120d fortress_rebuild 646 resolved wall 0m 39s (38.8s)

Predicted vs realized, across every calibration ledger

14,729 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
87% 92%
predicted vs realized, 10,532 matured picks across all sigma bands.
fortress_fight - touch
37% 32%
raw factor 0.88 over 3551 expired contracts.
fortress_fight - breach
516 breaches
raw breach factor 0.82 (predicted rate vs realized) over 3551 graded contracts.
fortress_rebuild - OTM at expiry
82% 88%
569 of 646 resolved. Touch: 36% predicted, 32% 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: 26 in progress (censored), 0 unexpired early touches (preview only).

perfectly calibrated 0-10% bucket - n=530 - predicted 4.0% - realized 3.4% 10-20% bucket - n=750 - predicted 16.4% - realized 12.7% 20-30% bucket - n=440 - predicted 24.3% - realized 22.5% 30-40% bucket - n=424 - predicted 34.6% - realized 30.7% 40-50% bucket - n=458 - predicted 44.4% - realized 39.7% 50-60% bucket - n=219 - predicted 54.9% - realized 44.8% 60-70% bucket - n=135 - predicted 65.1% - realized 54.8% 70-80% bucket - n=258 - predicted 75.8% - realized 66.7% 80-90% bucket - n=214 - predicted 84.4% - realized 79.0% 90-100% bucket - n=123 - predicted 96.5% - realized 89.4% 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
3551 / 30
✓
Breach events ≥ 10
516 / 10
✓
Expiry weeks ≥ 6 (one cycle teaches one regime)
17 / 6
✓
History span ≥ 60d (must see vol vary)
120d / 60d
✕
Challenger beats raw out of sample (champion check)
raw
MetricNPredictedRealizedRaw factor
Touch355136.7%32.3%0.88
Breach3551realized 516 breach event(s)0.82
IV haircutcorrect the input: touch model on iv × h0.90
Champion/challenger (rolling-origin walk-forward, 16 folds, 3238 pooled out-of-sample rows): flat Brier 0.1682 / ECE 0.0411; haircut Brier 0.1676 / ECE 0.0534; logit Brier 0.1668 / ECE 0.0508; raw Brier 0.1640 / ECE 0.0395; trend Brier 0.1684 / ECE 0.0571 (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.9%, ratio 0.73W282026-W29: n=574, predicted 39.6%, realized 20.9%, ratio 0.53W292026-W30: n=530, predicted 41.8%, realized 39.4%, ratio 0.94W302026-W31: n=257, predicted 34.8%, realized 39.3%, ratio 1.13W312026-W32: n=368, predicted 43.4%, realized 50.5%, ratio 1.17W322026-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.36W392026-W40: n=82, predicted 30.7%, realized 11.0%, ratio 0.36W402026-W41: n=88, predicted 36.3%, realized 28.4%, ratio 0.78W412026-W42: n=86, predicted 29.8%, realized 7.0%, ratio 0.23W422026-W43: n=180, predicted 38.2%, realized 22.2%, ratio 0.58W432026-W44: n=201, predicted 29.8%, realized 23.9%, ratio 0.80W44
WeekNPred touchReal touchRatioPred breachReal breach
2026-W2831334.3%24.9%0.7316.5%7.7%
2026-W2957439.6%20.9%0.5319.1%2.6%
2026-W3053041.8%39.4%0.9420.2%10.9%
2026-W3125734.8%39.3%1.1316.8%21.8%
2026-W3236843.4%50.5%1.1720.3%39.4%
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%
2026-W408230.7%11.0%0.3614.9%4.9%
2026-W418836.3%28.4%0.7817.7%13.6%
2026-W428629.8%7.0%0.2314.5%1.2%
2026-W4318038.2%22.2%0.5818.8%2.2%
2026-W4420129.8%23.9%0.8014.4%14.9%

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%164639%34%-4 pts
flat +/-10%164936%32%-4 pts
up >10%24631%24%-7 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%
2026-10-03299637% / 33%0.900.82raw857786% / 90%44836% / 38%
2026-10-10308437% / 34%0.910.86raw894986% / 90%47436% / 37%
2026-10-17317037% / 33%0.900.86raw950986% / 91%53836% / 35%
2026-10-24335037% / 33%0.880.81raw996086% / 91%59736% / 33%
2026-10-31355137% / 32%0.880.82raw1053287% / 92%64636% / 32%

cc_scanner: sigma bands, then ticker by ticker

10,532 matured picks graded against daily highs (11,894 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=803
64% → 83%
0.5-1.0σ - n=3114
78% → 88%
1.0-1.5σ - n=2758
88% → 93%
>1.5σ - n=3857
97% → 96%

Touch % by sigma band

0.0-0.5σ - n=803
56% → 67%
0.5-1.0σ - n=3114
36% → 31%
1.0-1.5σ - n=2758
23% → 17%
>1.5σ - n=3857
8% → 6%

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
NEM
+43 ▲ n=227
BMNR
+25 ▲ n=282
IBIT
+20 ▲ n=12
AAPL
+19 ▲ n=82
META
+17 ▲ n=304
NVDA
+12 ▲ n=295
DELL
+11 ▲ n=371
MSTR
+11 ▲ n=267
IGV
+9 ▲ n=353
MDB
+8 ▲ n=252
AMD
+7 ▲ n=102
SPY
+7 ▲ n=336
RIOT
+5 ▲ n=192
AMZN
+2 ▲ n=365
NOW
+2 ▲ n=300
GOOG
-2 n=1108
SOFI
-3 n=152
SNDK
-3 n=142
GLD
-4 n=282
RKLB
-4 n=27
HIMS
-6 n=392
INTC
-6 n=373
COPX
-6 n=319
CRWV
-11 n=123
COIN
-12 n=613
CRCL
-13 n=82
MU
-14 n=842
QCOM
-15 n=266
SPCX
-16 n=273
ENPH
-16 n=151
APP
-18 n=194
GLXY
-19 n=180
IREN
-22 n=855
MARA
-23 n=150
CLSK
-23 n=163
HOOD
-25 n=68
ASST
-34 n=3

fortress_rebuild: CC-survival forecasts

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

Predicted survival Realized OTM rate
0-60% - n=40
53% → 82%
60-70% - n=44
66% → 80%
70-80% - n=118
76% → 81%
80-90% - n=284
85% → 89%
90-100% - n=160
93% → 96%
MetricValue
Predictions logged733
Resolved (expiry passed)646
Predicted touch (avg)36.3%
Realized touch32.4%
Touch grades from exact daily highs630 / 645

Ledger vintage

The ledgers were written at the US open (09:31 ET) until 2026-10-14 and at 15:00 ET from then on, so the watchers can start at the bell. A 15:00 pick has 5.5 fewer hours of its first session left to touch, so compare the two vintages before trusting a shift in the realized rates.

GraderGraded, open runGraded, 15:00 ET run
cc_scanner10,270262
fortress_fight3,185366
fortress_rebuild57076

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. 98 nights logged (2026-07-24 → 2026-10-31).

CONFIDENT ADD — BILL, LDOS, LLY, NFLX, TOST, UBER, VG, XOP
Flagged as a portfolio complement on ≥60 nights at ≥70% persistence, and held up out-of-sample on ≥60% of matured windows. Add via a leap_builder 3-leg leveraged long writing CCs — no full 4-leg fortress needed, the same way SPY / IGV are held today.
TickerGroupNightsPersistMed corrCrisis dayOOS deliverVerdict
BILLFintech (TECH)6098%-0.22+1.29%69%CONFIDENT ADD
LDOSDef Tech (INDL)6098%-0.04+0.11%100%CONFIDENT ADD
LLYGLP-1 (HEALTH)6098%-0.32+0.74%90%CONFIDENT ADD
NFLXInternet (TECH)6098%-0.15+1.01%87%CONFIDENT ADD
TOSTFintech (TECH)6098%-0.13+0.90%69%CONFIDENT ADD
UBERInternet (TECH)6098%-0.05+0.27%100%CONFIDENT ADD
VGMidstream (ENERGY)6098%-0.16+1.10%100%CONFIDENT ADD
XOPOil E&P (ENERGY)6098%-0.17+0.73%100%CONFIDENT ADD
VKTXGLP-1 (HEALTH)6198%+0.22-1.04%2%WATCH
CAVARestaurants (CONS)6098%+0.13-0.65%49%WATCH
ABNBInternet (TECH)5998%-0.00+0.73%82%WATCH
DKNGCasinos (CONS)5998%-0.06-0.23%34%WATCH
EXPETravel (CONS)5998%-0.22+1.71%82%WATCH
HCCCoal (ENERGY)5998%+0.22-1.27%40%WATCH
NVOGLP-1 (HEALTH)5998%-0.20+0.78%74%WATCH
PARRRefiners (ENERGY)5998%+0.05+1.29%80%WATCH
ZSCyber (TECH)5998%+0.03+0.57%34%WATCH
FLUTCasinos (CONS)5798%-0.17+0.30%68%WATCH
AMGNGLP-1 (HEALTH)5692%-0.11+0.86%100%WATCH
OIHOil Svcs (ENERGY)5487%+0.25-0.78%69%WATCH
AMRCoal (ENERGY)5387%+0.23-1.68%38%WATCH
FTNTCyber (TECH)5082%+0.15-0.20%45%WATCH
SNOWSoftware (TECH)5082%+0.22+0.48%13%WATCH
ZBRARobotics (INDL)4573%+0.23+0.51%36%WATCH
SQMRare Earth (MATL)4498%+0.24-1.45%17%WATCH
WFRDOil Svcs (ENERGY)4498%+0.24-1.30%39%WATCH
NRGPower (ENERGY)4392%+0.24-3.00%0%WATCH
MDBSoftware (TECH)4087%+0.20-0.52%4%WATCH
ROKRobotics (INDL)3782%+0.20-1.19%29%WATCH
VIKTravel (CONS)3680%+0.24-0.64%87%WATCH
XYZFintech (TECH)3682%+0.21-0.02%27%WATCH
CIBRCyber (TECH)2471%+0.26-0.46%0%WATCH
IHIMedTech (HEALTH)3559%-0.33+1.24%100%noise
PANWCyber (TECH)3558%+0.20-0.73%25%noise
CRWDCyber (TECH)3760%+0.22-0.66%25%noise
CNRCoal (ENERGY)3152%+0.23-1.95%22%noise
TXSteel (MATL)2351%+0.23-0.51%48%noise
XHBBuilders (CONS)2553%+0.23-0.46%33%noise
SEDGSolar (ENERGY)7100%+0.23-2.00%youngnoise
PLTRDef Tech (INDL)3252%+0.24-0.71%26%noise
“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. 24 WATCH.

Income close bar

Every CLOSE Income published, graded once its expiry has a close: edge = what holding to expiry would have cost minus what banking cost (positive = banking was right). 19 graded so far.

GroupNEdgeRight
all closes19-$30,02715.8%
bank14-$5,55921.4%
print5-$24,4680.0%
Input that moved the barNEdgeRight
earnings5-$24,4680.0%
touch5-$24,8580.0%
escape0––
weekend0––
cluster0––
history10-$15,53430.0%
rewrite0––
An input whose edge stays negative over enough closes is pulling the bar too low: switch it off with module_close_bar.py --off KEY.
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.