Quantum Model CI90 Calibration Backtest
S&P 500 TOP-20 — 2026-06-18
1. What is CI90 Calibration?
A well-calibrated 90% confidence interval (CI90) should contain the true outcome in approximately 90 out of every 100 forecasts. If a model claims 90% coverage but only contains the outcome 60% of the time, the bands are too narrow (overconfident). If coverage is 99%, the bands are too wide (underconfident). Calibration ≈ 90% is the target.
The numbers in this post come from a reproducible backtest
of the TOP-20 S&P 500 tickers (by market cap), repeated at every
quarterly forecast start date, with 5000 Feynman paths and a fixed RNG
seed. For each start date, ticker and horizon, the model is calibrated on
price history up to that date, then asked to forecast forward; we then
measure what fraction of the actual daily closes over the forecast window
fell inside the model's quoted [q05, q95] band. Coverage
varies widely — and the single biggest driver of that variation is
simply when the forecast started. Section 3 reports every start
date, including the bad ones; we do not round them up and we publish no
average of them.
Important framing: this is a coverage metric, not a directional hit-rate. A high CI90 coverage score does not mean the model is correct that often about price direction. Directional accuracy for any model in efficient large-cap markets is typically only modestly better than a coin flip. The value of coverage is risk management: knowing a realistic price range with a quantified confidence level — provided the bands are actually calibrated, which (as Section 3 shows) holds for some names and horizons and not others.
2. Model Architecture
The Quantustik forecast engine combines two physics-inspired components:
- Schrödinger-derived potential. Each ticker's historical price distribution is inverted through the time-independent Schrödinger equation into a market “potential” — a map of the price levels the stock has favoured. This potential shapes how the price paths in the next step are weighted.
- Feynman path integral. All plausible price paths from today to the horizon are enumerated (Monte Carlo over path space), each weighted by an action functional under that potential. The aggregate gives a richer, multi-modal distribution than a Gaussian assumption.
- ML market-conditions classifier. An ensemble classifier detects the current market conditions (favorable / mixed / hostile for buying) and scales the forecast distribution accordingly. This is the primary source of the model's edge over naive path integration.
The q05 and q95 percentiles of the path ensemble
form the CI90 band reported in the API and dashboard.
3. CI90 Coverage by Forecast Start Date
The table below shows the measured CI90 coverage at three
horizons, for each quarterly date a forecast could have started on.
Coverage is the fraction of actual daily closing prices over the forecast
window that fell inside the model's quoted [q05, q95]
band, averaged across the TOP-20 names for that start date. This is a
real, reproducible backtest: 5000 Feynman paths per Bayesian sample, RNG
seed 42. The record is version-controlled in the repository at
app/quantum_model/baselines/rolling_anchor_calibration.json,
and the table is rendered from it rather than transcribed, so it cannot
drift away from the recorded run.
There is no total row, and that is deliberate. The quarterly windows overlap at 6 months and 1 year, so nine start dates are worth about nine independent readings at 3 months but only two or three at 1 year. One averaged headline would carry an accuracy this sample cannot support — and a confidence interval printed on top of it would be worse, because an interval on an estimate of a probability reads to most people as a range the price might land in. The rows are the finding.
Cells highlighted in green are inside the closed 85–95% band we publish as well-calibrated for a 90% interval. Everything else is an honest miss, in one of two directions: below the band the interval was too narrow to contain what happened (over-confident — the direction that hides real downside), and above it the interval was so wide it carried little information — a “90% band” containing 99% of outcomes is not a 90% band, and we do not score it as a pass. We publish both directions rather than hide them, because a coverage metric is only meaningful if its failures are visible. The record is measured against the model as served, with the market and sector coupling attached, so these figures describe the same code path a live forecast runs through; the price series behind both the forecasts and the realized outcomes is FMP's split-adjusted close, which is what the production pipeline uses.
| Forecast start date | 3mo CI90 | 6mo CI90 | 1yr CI90 |
|---|---|---|---|
| 31 Mar 2024 | 84% | 92% | 90% |
| 30 Jun 2024 | 87% | 82% | 96% |
| 30 Sep 2024 | 78% | 88% | 90% |
| 31 Dec 2024 | 87% | 75% | 86% |
| 31 Mar 2025 | 80% | 84% | 94% |
| 30 Jun 2025 | 83% | 88% | 90% |
| 30 Sep 2025 | 94% | 71% | 90% |
| 31 Dec 2025 | 95% | 86% | 96% |
| 31 Mar 2026 | 91% | 91% | 90% |
Methodology: one forecast window per start date, ticker and horizon,
repeated quarterly. For each of them the model is calibrated on price
history up to that start date (3-month = 63 trading days,
6-month = 126, 1-year = 252 days forward), then the actual daily
closes over that window are checked against the forecast
[q05, q95] band. No look-ahead: training strictly uses
data up to the start date. Source record:
rolling_anchor_calibration.json (5000 paths, seed 42).
Numbers can shift slightly between machine environments because the
production path kernel is parallel; the committed record is the canonical
figure and is reproducible under
BACKTEST_DETERMINISTIC=1.
4. How Much the Start Date Matters
The same model, the same twenty names and the same seed produce materially different coverage depending only on which quarter the forecast started in. This table states that spread directly, and counts how many start dates land inside the [85%, 95%] tolerance we publish as well-calibrated for a 90% band. A range is a description of what the start dates did, not an estimate of a long-run rate, so it claims no precision the sample cannot back.
| Horizon | Window (trading days) | Coverage across start dates | Start dates inside [85%, 95%] |
|---|---|---|---|
| 3 months | 63 | 78% – 95% | 5 of 9 |
| 6 months | 126 | 71% – 92% | 5 of 9 |
| 1 year | 252 | 86% – 96% | 7 of 9 |
The honest read: coverage spans 3 months 78–95%, 6 months 71–92%, 1 year 86–96% across start dates, against a 90% target. The spread is the finding. We publish no single averaged number for any horizon, because these windows overlap at 6 months and 1 year — averaging them would state an accuracy this measurement cannot support, and a confidence interval printed on an estimate of a probability invites a reader to mistake it for a range the price might land in. Individual windows are worse than the table: UNH started 30 Jun 2025 (10%), NVDA started 30 Jun 2024 (6%) and NVDA started 31 Dec 2024 (2%). A model whose marketing claimed “97% on everything” would be hiding exactly this variation — we are not.
Illustrative example, not a measured result. Conceptually, coverage should be lowest when the market-conditions classifier is slow to widen its bands going into a volatility spike, and highest in calm trending markets. For instance, a 3-month forecast issued just before a sudden risk-off shock would be expected to under-cover, because realised prices gap outside bands sized for the prior calm market. This is the mechanism we tune against; the specific breakdown by market conditions is not part of this backtest artifact and is therefore not reported here as a measured figure.
5. Known Limitations
- Calibration vs. direction. CI90 coverage measures whether the probability bands contain the realised price. It says nothing about whether the central forecast is directionally correct. We do not report a directional hit-rate from this artifact, and we caution that directional accuracy for any model in efficient large-cap markets is typically only modestly better than a coin flip — never treat a forecast mean as a standalone buy/sell signal.
- Few genuinely independent windows. Quarterly start dates put a fresh, non-overlapping window at every date only at 3 months. At 6 months and 1 year consecutive windows share most of their calendar, so the effective independent sample is roughly half and roughly a quarter of the row count respectively. That is why we publish the rows and not an average of them, and why no figure on this page carries an error bar.
- Per-name dispersion is wider still. Each row already averages twenty names, so it hides worse individual windows — the worst on this record are named in the honest read above. A start date landing inside the tolerance does not mean the names inside it did.
- TOP-20 concentration. These figures apply only to the TOP-20 S&P 500 tickers (high-liquidity, large-cap). We have not measured coverage on smaller, less-liquid names in this artifact and make no claim about them here. The quantum path-integral model is expected to perform best on smooth, high-volume price series.
- Black-swan tail risk. The model's path ensemble does not model exogenous shock distributions (earnings surprises, geopolitical events, etc.). Any such shock inside a forecast window can push the realised price outside the CI90 band — this is a structural limitation of the method, not a tuning bug.
- No look-ahead in training. Each backtest calibrates strictly on price history up to the forecast date. However, the market-conditions classifier uses VIX and breadth data derived from forward-looking options markets; this is an acknowledged limitation of the inputs.