GEX · Grading
The morning levels are frozen at 08:30 ET, before the cash open. After the close they are graded against the session my own tape recorded: a call wall held if the session high never cleared it by more than the tolerance, a put wall held if the low never broke it by more, and the result — held or broke — goes on the public record with its date and stays there.
This page states the rule exactly as the grading code runs it, including the tolerances, the data it reads, and the things it deliberately does not grade. The strongest claim I can make for the levels is not that they always hold — they don’t — but that the scoring never bends.
At 08:30 ET each trading morning the published ES and NQ levels — call wall, put wall, max pain — are written to a snapshot table at the moment they are posted. The evening grade reads that snapshot, not the morning post, and never recomputes the levels after the fact.
That detail exists because of a real failure: an early version re-parsed the levels out of the morning post at grading time, and a formatting change silently made it score the wrong numbers. Since the June 2026 audit the rule is mechanical — what was posted is what gets graded, byte for byte, and if no snapshot exists for a day, that day is skipped rather than reconstructed.
Levels are never moved intraday. A level that looks wrong by lunch stays on the record at its 08:30 value, because a record you can edit after the market answers is not a record.
After the close, the grader pulls the session’s real high and low for the ET trading day from my own recorded tick tape — not a vendor’s daily bar — and applies one test per wall:
The tolerance is fixed per contract: 10 points on ES, 40 points on NQ. A wick of up to the tolerance through a wall still grades as held — that band absorbs stop-runs and quote noise around a level — and anything beyond it grades as broke, with no judgement call anywhere in the path. The same thresholds have applied to every graded session on the record.
A day with no recorded tape for the session grades as nothing: the code skips it. No estimate, no substitute data source, no hand-entered high and low.
The morning post also carries a gamma-flip level and a regime read. Neither appears in the held/broke record, because I have not yet built a test for them that I would defend — “was the regime call correct” is a judgement, and judgements don’t belong in a scorecard. In the grading table those columns are simply empty rather than scored generously.
When a defensible automated test for the flip exists, it will start grading from that day forward — never retroactively, for the same reason the levels never move after 08:30.
This strip is the live grading table — the same rows the full scorecard, the daily 16:15 ET posts and the graded evening email all read. One table, every surface, misses included.
Every trading day at 4:15 PM ET the morning levels are scored against the session's real high, low and close from the recorded tape. Every day lands here — the ones that held and the ones that broke.
ES call wall / put wall held
last 21 sessions
NQ call wall / put wall held
last 21 sessions
| Session | ES | NQ |
|---|---|---|
| Aug 24 | both held | both held |
| Aug 21 | put broke | put broke |
| Aug 20 | put broke | both held |
| Aug 19 | both held | both held |
| Aug 18 | both held | both held |
| Aug 17 | both held | both held |
| Aug 14 | both held | both held |
| Aug 13 | both held | call broke |
| Aug 12 | both held | both held |
| Aug 11 | both held | call broke |
A wall held if the session never closed through the level I published that morning. Every graded session appears — the ones that held and the ones that broke. I don't publish a combined accuracy score: the gamma-flip leg of it isn't graded yet, and averaging an ungraded leg in would make the number say something I can't stand behind. Full data + the exact grading rules: /data/scorecard. Days without a same-day morning snapshot are skipped, never estimated.
The levels themselves are free every trading morning on the levels page and by email before the open. How they are computed is its own page: the methodology.