A session’s notable prints on tracked tickers, each joined to the open interest its contract actually settled the next morning, and stamped opened, closed, rolled, unresolved or pending. The question a print raises is answered by OI, never by the print itself.
n. A verdict rate’s n is the number of distinct CONTRACTS, not prints, because prints on one contract share one settled change — the flow analogue of overlapping forward windows shrinking an effective n. Below n_min 20 the summary shows counts and no percentage.
Cost: three queries — the session, then the prints and the coverage together. Only point lookups touch core.option_strikes: rows D and D+1 by full primary key per contract, the persistence series by full key per later session, and — new, for the default above — the newest as_of_date per tracked symbol, a primary-key prefix read each. Measured on production 2026-09-16 at 18:53 ET: the session query 34–40 ms warm (62 ms cold), the prints query 240–470 ms for 2026-09-14’s 239 notable prints and 1,299 ms once for 2026-09-15’s 174 — the same spread of production load the 2026-09-15 numbers below show, not a change to the query. Measured warm on 2026-09-15, three passes: the session 32–37 ms; the prints query 278 ms for 09-11’s 203 notable prints at $500k and 365 ms for 09-14’s 239; 1,345 ms for 09-11’s 1,554 at the $100k floor, which is the page’s worst case and the reason the floor defaults where it does. Earlier the same day the same reads measured 237–311 ms and 850–1,000 ms; the spread is production load, not a change to these queries.
Flow Discovery asks the same session’s question of the names outside the universe, where no chain exists to answer it.
214 of this session’s 226 prints are pending; the other 12 could not be asked at all, for the reason each row gives. Row 2026-10-01 of the chain has not been collected yet — that book is written at 19:00 ET on that session — so the settled open interest these prints produced does not exist anywhere to read. This is the correct state for a session the chain has not reached, not a fault.
These prints settle when 2026-10-01’s book is written, at 19:00 ET tonight.
Matched strategies: call_vertical_spread (1), synthetic (1), other (1).
Counted in prints, not rated: prints on one contract share one settled OI change, so a rate’s n is the contract count in the table below, and R2 holds it to n_min 20.
| AMD | 610C | 2028-01-21 | 478 | 15:30:28 | 400 | $6.8m | sweep | 400 | — | pending | — | — | no match |
| CRWD | 240C | 2028-01-21 | 478 | 15:02:23 | 578 | $5.2m | sweep | 747 | — | pending | — | — | no match |
| META | 800C | 2026-11-06 | 37 | 11:50:46 | 1,783 | $3.9m | — | 2,066 | — | pending | — | — | no match |
| MU | 800P | 2029-01-19 | 842 | 10:47:45 | 240 | $3.8m | sweep | 240 | — | pending | — | — | no match |
| NVDA | 230C | 2026-10-16 | 16 | 12:01:26 | 5,624 | $3.7m | — | 6,728 | — | pending | — | — | no match |
| SOXX | 650C | 2027-04-16 | 198 | 11:10:59 | 850 | $3.5m | floor · opening | 850 | — | pending | — | — | call_vertical_spread ×850 |
| SPY | 684C | 2026-09-30 | 0 | 10:56:35 | 376 | $3.2m | — | 376 | — | unresolved | expired before the next session settled — no later OI exists | — | no match |
| CRWD | 260C | 2028-01-21 | 478 | 15:09:59 | 387 | $3.2m | sweep | 1,374 | — | pending | — | — | no match |
| SPY | 690P | 2027-09-30 | 365 | 15:26:30 | 1,400 | $3.1m | floor | 1,400 | — | pending | — | — | no match |
| QQQ | 750C | 2026-10-16 | 16 | 11:50:14 | 2,526 | $2.4m | — | 5,376 | — | pending | — | — | no match |
| QQQ | 750C | 2026-10-16 | 16 | 11:49:20 | 2,594 | $2.4m | sweep | 5,376 | — | pending | — | — | no match |
| META | 730C | 2026-11-06 | 37 | 14:49:03 | 502 | $2.3m | — | 502 | — | pending | — | — | no match |
| NVDA | 225C | 2026-10-02 | 2 | 09:35:38 | 3,500 | $2.3m | — | 3,753 | — | pending | — | — | no match |
| SPY | 694C | 2026-09-30 | 0 | 11:43:45 | 304 | $2.3m | — | 304 | — | unresolved | expired before the next session settled — no later OI exists | — | no match |
| MU | 1,100C | 2026-10-02 | 2 | 09:38:49 | 846 | $2.2m | — | 3,145 | — | pending | — | — | no match |
| MU | 1,065C | 2026-10-02 | 2 | 15:54:02 | 528 | $2.2m | sweep | 767 | — | pending | — | — | no match |
| SPY | 700P | 2026-12-18 | 79 | 12:42:02 | 4,000 | $2.1m | — | 4,057 | — | pending | — | — | no match |
| NVDA | 230P | 2026-10-09 | 9 | 13:46:55 | 4,767 | $2.0m | — | 5,188 | — | pending | — | — | no match |
| MU | 1,070C | 2026-10-02 | 2 | 11:24:29 | 468 | $2.0m | sweep | 2,003 | — | pending | — | — | no match |
| INTC | 117C | 2026-10-02 | 2 | 13:00:32 | 4,510 | $1.9m | — | 4,844 | — | pending | — | — | no match |
| SPY | 766C | 2026-12-18 | 79 | 15:07:22 | 780 | $1.9m | sweep | 780 | — | pending | — | — | no match |
| MU | 1,070P | 2026-10-16 | 16 | 09:38:52 | 317 | $1.8m | — | 368 | — | pending | — | — | no match |
| SOXX | 565P | 2028-12-15 | 807 | 13:42:32 | 160 | $1.8m | floor | 160 | — | pending | — | — | no match |
| CRWD | 260C | 2028-01-21 | 478 | 15:45:14 | 222 | $1.8m | — | 1,374 | — | pending | — | — | no match |
| AVGO | 352.5P | 2026-10-09 | 9 | 12:11:43 | 2,554 | $1.7m | sweep | 2,554 | — | pending | — | — | no match |
| CRWD | 260C | 2028-01-21 | 478 | 15:10:16 | 210 | $1.7m | — | 1,374 | — | pending | — | — | no match |
| AMD | 600C | 2027-01-15 | 107 | 10:25:36 | 225 | $1.7m | — | 225 | — | pending | — | — | no match |
| QQQ | 750C | 2026-10-09 | 9 | 10:13:54 | 3,000 | $1.6m | — | 3,333 | — | pending | — | — | no match |
| SPY | 844P | 2026-09-30 | 0 | 15:53:08 | 206 | $1.6m | sweep | 206 | — | unresolved | expired before the next session settled — no later OI exists | — | no match |
| CRWD | 260C | 2028-01-21 | 478 | 15:45:12 | 200 | $1.6m | — | 1,374 | — | pending | — | — | no match |
| MU | 1,100C | 2026-11-20 | 51 | 14:40:12 | 200 | $1.6m | — | 226 | — | pending | — | — | no match |
| MU | 1,100C | 2026-10-09 | 9 | 09:41:46 | 410 | $1.6m | — | 420 | — | pending | — | — | no match |
| NVDA | 230P | 2026-10-07 | 7 | 13:52:36 | 4,857 | $1.6m | — | 4,857 | — | pending | — | — | no match |
| ORCL | 140P | 2027-01-15 | 107 | 12:19:47 | 939 | $1.6m | — | 2,284 | — | pending | — | — | no match |
| QQQ | 745C | 2026-10-01 | 1 | 10:20:24 | 5,252 | $1.6m | — | 10,189 | — | pending | — | — | no match |
| INTC | 130C | 2026-12-18 | 79 | 09:49:27 | 1,486 | $1.5m | — | 1,740 | — | pending | — | — | no match |
| MU | 1,000C | 2026-11-20 | 51 | 10:44:22 | 111 | $1.5m | sweep | 120 | — | pending | — | — | no match |
Which session this page opens on. Session D’s alerts are collected at 21:15 ET that evening and the book that settles them at 19:00 ET the NEXT one, so a print is unjudgeable for about 27 hours — and on the newest alerted session every row below would read pending, which is this page’s subject missing rather than shown. With no ?date= it therefore opens on the newest session whose settling book has been collected — and whenever a newer session has alerts, the band above names it and says when it settles. Both run times are read from core.source_registry, the jobs’ own declared schedule. ?date= reaches every session, the pending one included.
The OI semantics, measured. Row D of core.option_strikes carries open interest at the START of D — OCC’s settlement of D−1 — so the change session D’s trading caused is oi(D+1) − oi(D). On none of the 108 notable contracts of 2026-09-11 that had both rows did row D+1’s prev_oi differ from row D’s oi. Row D+1 is written at 19:00 ET on D+1, and the collector re-fetches it the following evening and updates what changed (4 of 44,434 rows on the 2026-09-15 run), so a verdict can move exactly once. The next session’s chain has not been re-fetched yet; the newest collected chain session here is 2026-09-30.
Why 50%. The settled change nets every trade in the contract — opening and closing, alerted or not — so “at least half the alerted size survived the netting” is the weakest claim that the alerts’ direction dominated the session. Declared, not fitted to make the table look decisive.
Why a roll needs a time link. The obvious rule — any same-ticker, same-type contract with same-session volume gaining OI within 25% of the loss — called 15 of 2026-09-11’s 16 closed contracts a roll, and each QQQ closure had 41–86 qualifying candidates. On a chain that deep a matching gain somewhere is the density of the chain, not a roll: the rarity-by-combinatorics trap DESIGN.md §3.5 cuts. Requiring the other leg to have drawn its OWN alert within 60s leaves two clean matches and admits nothing a 5-second window does not. The cost is recall: a roll whose new leg drew no alert stays “closed”.
Multi-leg reconstruction is not in the alert feed. DESIGN.md I pictures “of today’s 40 large SPY put prints, 31 were legs of verticals”. That read is not reproducible here: the vendor flags has_multileg on none of its RepeatedHits alerts (0 of 9,613 on 2026-09-14) and only on floor rules, and matching core.multileg_trades on ticker, second, strike, DTE and a size at least 50% of the print found 0, 0, 0, 0 and 2 prints over 2026-09-08..14 — the two the vendor itself flagged. Dropping the size floor finds 3–9 “matches” a session against trades a fraction of the print’s size, which are coincidences. So both counts are reported as they are, and the chain’s own per-contract multi-leg volume sits in each row’s tooltip as the only measure that sees every multi-leg lot.
n. A verdict rate’s n is the number of distinct CONTRACTS, not prints, because prints on one contract share one settled change — the flow analogue of overlapping forward windows shrinking an effective n. Below n_min 20 the summary shows counts and no percentage.
Cost: three queries — the session, then the prints and the coverage together. Only point lookups touch core.option_strikes: rows D and D+1 by full primary key per contract, the persistence series by full key per later session, and — new, for the default above — the newest as_of_date per tracked symbol, a primary-key prefix read each. Measured on production 2026-09-16 at 18:53 ET: the session query 34–40 ms warm (62 ms cold), the prints query 240–470 ms for 2026-09-14’s 239 notable prints and 1,299 ms once for 2026-09-15’s 174 — the same spread of production load the 2026-09-15 numbers below show, not a change to the query. Measured warm on 2026-09-15, three passes: the session 32–37 ms; the prints query 278 ms for 09-11’s 203 notable prints at $500k and 365 ms for 09-14’s 239; 1,345 ms for 09-11’s 1,554 at the $100k floor, which is the page’s worst case and the reason the floor defaults where it does. Earlier the same day the same reads measured 237–311 ms and 850–1,000 ms; the spread is production load, not a change to these queries.
Flow Discovery asks the same session’s question of the names outside the universe, where no chain exists to answer it.