Under the hood · the working overview · read-only
Research notebook
The working overview behind the story: the record's pulse, what changed, the market map, how the model works and the honest numbers — in the project's own terms, with the error bars left on.
What changed
Every change to what this site claims and how it is computed, with a link to the panel where you can see it. strategy changes what is scored or claimed; reporting changes what a number counts; systems changes the plumbing under one.
- 2026-10-20 systems A dashboard joins the working pages: the tradeable return, the return for the risk taken and where the options and volatility research stands, on one screen, each linking to the panel that says it in full. It changes no number — every figure is the model page’s or the story’s own, the days committed in advance first. the dashboard →
- 2026-10-10 reporting The model dashboard reports the open-to-open return against its risk: the Sharpe ratio with its give-or-take, yearly volatility, the Sortino ratio, the deepest drawdown, return over drawdown, days up and the worst days, for the tested decade beside the days committed in advance, at a trading cost you choose. No other number changes, and none is computed on the paper account’s close-to-close return. risk and return →
- 2026-09-29 systems A return explorer joins the working pages: slice the stock-days by the model's rank, earnings dates, sector, indicators, liquidity or the calendar, and see how the stored return that followed was distributed against the rest of the universe on the same days. It is for looking, not for results — it counts your looks, flags windows no one could have traded and conditions that know the future, and changes no number anywhere else. the return explorer →
- 2026-09-23 systems The overview opens with the record's pulse — the committed-in-advance count as a ring, the unbroken run of nights committed on time, the countdown to the next scoring run and every scored day on a calendar — and gains a market map of the universe. Nothing counts differently: the calendar draws the same committed test day by day. the market map →
- 2026-09-23 reporting The research ledger opens with an ordering check: how many blocks carry a registration timestamped before their result rows. It is a check on the clock, not proof a rule was followed — the committed document is that. the ledger check →
- 2026-09-23 systems The screener, symbol, model, research and health pages were rebuilt for exploring — keyboard navigation everywhere (⌘K, g-keys, ?), in-cell bars and a hover peek on the screener, a replay of the paper record, verdict stamps, freshness lights. Every number, count and caveat is the one the page showed before. the screener →
- 2026-09-20 strategy One single-characteristic paper decile is now scored beside the model every night on the same cross-section, so a paired live series exists to measure what the model adds over a plain characteristic sort. Fixed to beta_spy_v1 on 2026-09-20 12:45. the companion panel →
- 2026-09-20 strategy The +4.93 headline now carries what it is made of wherever it is shown — roughly half the return to the book's beta tilt (AG-018), earned overnight (AG-013), from a ranking that separates one decile (R3) — and is never restated beta-adjusted. the honest numbers →
- 2026-09-20 reporting The live record is now counted two ways: days committed before the outcome existed, and days merely carrying the live stamp. Only the first counts toward the ~100 needed, and no stamp was rewritten. where things stand →
- 2026-09-20 reporting A symbol's model record — its rank history, its predictions and whether it is in the book now — counts the active model's own rows only, so the backfilled rows two 2026-07-24 edge maps left on 101 names no longer appear there, and no live row moved. AAPL's model record →
- 2026-09-20 systems A second frozen model — trained on the implementable open-to-open target and registered under docs/pre-registered-S.md — is now scored beside the production one every night, into its own workbook and its own rows, and is promotable only by that document's calendar and never by what it earns. the shadow lane →
- 2026-09-20 systems Every leg-based live number now names the prices it was computed from, because those rows are recomputed from prices_daily on every nightly ingest. the execution panel →
- 2026-09-20 systems The live book's turnover is measured and printed beside the round-trip cost that would eat the whole gross — R2's convention, and gross of a cost nobody has measured. turnover and breakeven →
- 2026-09-20 systems The health page says how many days the options backfill has been stalled and how many execution fills have been logged, so neither stall is invisible. option chains → · fills →
Agent-fleet findings (AG-0nn) are named wherever they are borrowed. They are not registered blocks and they are not record findings — the research ledger says which is which. closed directions →
Where things stand
One frozen model is scored every evening and its picks are recorded before the outcome exists. The record needs about a year of days committed in advance before it can say anything; until then every figure here is a plumbing check.
A modest cross-sectional effect — +4.93 bps/day to an execution one day behind the signal, next open to the open after (SE 1.83) — found in backtests and awaiting live confirmation. Roughly half of it is the return to the book's beta tilt (AG-018); it is never restated beta-adjusted. Every number on these pages carries its standard error and one of three evidence states:
Active model
- Kind
- gbm · h=1 · long only
- Universe
- liquid500
- Trained through
- 2015-12-31 · never refit
- Exit buffer
- 30% · chosen before the sweep
Market regime as of 2026-09-08
What the backtest earned in these states
| vol low | 1.20 bps/day ±1.70 SE · 1062 days |
| dispersion high | 7.36 bps/day ±2.91 SE · 1614 days |
The figures are the implementable leg — next open to the open after, the only return an execution following the 18:30 signal can take. States are fixed in advance: SPY's trailing 21-day volatility in point-in-time terciles, SPY above or below its 200-day average, and the dispersion of members' 21-day returns in terciles. The registered test (Phase P2) ran on the close-to-close leg, not this one, so its verdict — the edge concentrated in mid/high volatility and high dispersion — does not transfer to these numbers without its own registration.
backtest The frozen model scored on dates it never traded, after the fact. A description of the holdout, not evidence — only live days are evidence.
Market map
The tradable universe by sector. Each box is a stock sized by what trades in it (20-day dollar volume) and coloured by its move over the period you pick; the model's latest book is outlined. Click a sector to zoom in, a stock to open it. A picture of what the market did — no statistic is drawn from it.
How to read this
Returns are adjusted-close changes to the latest membership date from the screener's own anchor dates (1, 21, 63 and 252 sessions back), so a box here and the screener's row agree. The colour scale is clipped symmetrically around zero so one outlier cannot wash out the rest. The outline marks the names the active model held on its newest scored day; a shadow's or the paper companion's book is never drawn here.
Nothing on this map is a test. A sector glowing green while the book sits in it is a description of one period, not evidence the model chose well.
How the model works
Prices and volume in, a ranked list out, every evening. Nothing here uses fundamentals, and the model has never been refit.
- UniverseEach month, the 500 most-traded US stocks by 20-day median dollar volume — including names that later delisted, because dropping them would flatter every historical number.
- Signals19 technical indicators computed from price and volume only (25 built, then pruned by correlation). There are no fundamentals anywhere in this system.
- Frozen modelA gradient-boosted model trained once, on 2005–2015, and never refit — on purpose. The live record is only meaningful because the map is held still while reality is compared against it.
- Ranking and bookEach evening every name the model can score (up to ~500) is ranked best to worst. The top tenth — typically 49 names — forms an equal-weight, long-only paper book with a 30% buffer: a name enters in the top tenth and is not sold until it drops out of the top 30%, so a typical name is held several days and turnover roughly halves.
- Live recordThe book is logged append-only before the outcome exists, and evaluated on next-day returns. A day scored in arrears is marked backfill and never counts as evidence.
What the model keys on, and how big the edge really is
What the model keys on is not fast timing. Feature attribution puts about 34% of its importance on ATR% (realized volatility) and 28% on distance from the 200-day moving average — it conditions on a stock's volatility-and-trend state.
Be blunt about scale: the claimed edge is a few basis points per day, which on a $100k book is roughly tens of dollars a day before trading costs. The backtests support it — and show that it is earned overnight, not during the session, and that it carries into the following night, so an execution one day behind the signal keeps it. The live record, which is the only test that can't be gamed, has barely begun.
The honest numbers
| +4.93 bps/day (SE 1.83) | An execution one day behind the signal — next open to the open after. The only backtest return reported here, because it is the only one an execution following an 18:30 signal can take. Costs at the open unmeasured (P3). Roughly half of it is the return to the book’s beta tilt — slope +0.42 on the forward market, 52% of the mean on this decade, residual +2.36 at t 1.45 (AG-018, an agent-fleet finding, not a registered block); it is never restated beta-adjusted | backtest |
| IC ≈ +0.01 | Rank correlation between score and next-day outcome — tiny per name, usable only across ~500 names at once | backtest |
| 55 committed days | Days committed before the outcome existed — the only rows that are evidence. 85 days carry the live stamp, 30 of them scored in arrears and restamped live on 2026-09-12 (FINDINGS C20) | live |
| ~1 year | What would falsify this: ~100 independent blocks committed in advance with the realized spread at or below zero | the test |
What the +4.93 is made of, and where each piece came from. The timing: 87% of the implementable return sits in the close-to-open leg on 2016–2021; since 2022 the two legs split evenly and neither is distinguishable from zero (AG-013). The ranking: decile 1 earns +5.43, decile 2 +1.22, deciles 3–10 sit at zero, and inside decile 1 the five sub-buckets are not ordered (R3, registered) — so this is a classifier of one decile, not a ranking to slice finer. AG-013 and AG-018 are agent-fleet findings, not registered blocks.
Two changes to what this table reports, both made on 12 September 2026 and both recorded in docs/FINDINGS.md C20. One: the close-to-close figures this table used to lead with — the +3.61 selection alpha, the +6.00 top-minus-bottom spread, the +0.44 intraday leg and the t = 2.16 factor alpha — are no longer reported, because all of them book entry at a close whose signal is not committed until 18:30. They remain in the registrations and in backtest_daily. Two: 30 days that were scored in arrears are now stamped live, so the live count above includes days whose outcome already existed when they were scored — 19 of them scored by a model that did not yet exist.
Glossary
- Excess return — a stock's return minus its sector median, centered so each day's full cross-section averages zero.
- bps — basis points; 1 bp = 0.01%, so 100 bps = 1%.
- SE — standard error; roughly, ±2 SE spans the plausible range around an estimate.
- Independent block — a stretch of adjacent days counted as one observation, since days overlap.
- IC — rank correlation between model ranking and realized outcomes.
- Decile — one tenth of that day's scored names; roughly 30–50 stocks here.
- Frozen model — fitted once on 2005–2015, never updated; every later day is out-of-sample.
- Live vs backfill — live: scored before the outcome existed; backfill: scored in arrears — never evidence.
- Committed in advance — written before the outcome existed, judged by when the row was written rather than by its stamp. Since 12 September 2026 the live stamp also covers 30 days scored in arrears, so this is the count that carries evidence.
- Implementable — what a one-day-lagged execution at the open would earn: enter at the next open, exit at the open after. The only return reported as a result. The record internally books a close-to-close return instead, which is an accounting convention, not a strategy.
Does the ranking predict returns?
Every scored name on every scored day, sorted into tenths of the model's rank. If the model orders stocks at all, the bars should rise from left to right — and with about two months of days against an edge of a few bps, noise will dominate for a long time.
loading
How to read this
This chart uses the full scored cross-section — up to ~500 names a day, fewer on reduced-coverage days — not just the book. Each day every scored name with a realized next day falls into a rank decile — the model's least favorite tenth on the left, its favorite tenth on the right — and each bar is the realized next-day excess return in bps, averaged within each day first, then across all scored days, with a block-bootstrap standard error. It is out-of-sample by construction: the model was frozen at end-2015 and scoring began July 2026.
Note which end does the separating: a long-only book only harvests the top decile, so strong separation at the bottom alone — the model's rejects underperforming — would not be captured by this construction. One more caveat: some scored days were recovered in arrears. The scores are deterministic either way, but only evening-of days prove the commitment came before the outcome — the same rule that keeps live and backfill separate everywhere else here.
Explore
Where each page goes deeper.