Grade a read three ways
Learn to grade a market prediction (a “read”) three ways: direction, level and path. Try it on seven recorded QQQ mornings, then log your own reads in a spreadsheet.
In plain words: the read is yours and hypothetical, and no trade was placed, so a grade is not a trading result.
In this article 9 sections
The short answer
Score a read, a written prediction, on three separate questions, because they can disagree. QQQ, Sep 16, 2026: when the first 15 minutes of the session ended, at 09:45 ET, QQQ was at 708.39 and the read is “price rises and breaks the 710.00 call wall” (the strike with the most call-option gamma). At the close it was wrong on direction (QQQ finished 0.51% below where it was at 09:45), right on the level (price did trade above 710.00, to 711.85) and negative on path (after 09:45 price gave a bullish read $3.46 of room up and took $8.39 of room down). Judged at one hour instead of the close, the same read was right on direction (+0.21%): a read has to name its horizon before it can be graded.
Prism by GEXfreak’s ledger, the record where Prism logs its own published setups (trade ideas with a stated entry, stop and target), uses these same three scores. It does not take reads you enter, and this page shows no ledger result: it shows how to score yours on paper, and how much of a score is chance.
Write a read. Show the session. Score it.
Recorded QQQ · 7 sessions · grader setup-grade-v1
The prices are recorded history. The levels are Prism by GEXfreak’s own saved morning models, kept only where the model was built before the decision; none was recomputed afterwards. The read is yours and hypothetical: nobody placed a trade, so a grade is not a trading result.
- Level you are watching
- Other levels
- Decision (spot = the 09:45 close)
Set the fields, then show the session. Your read gets three scores: did price move your way by the horizon you named, what did it do at the level, and how much room did price give you against how much it took, to the close.
Table, method and data source
| Horizon | Close at horizon | Move | Direction score, bullish |
|---|---|---|---|
| 15 minutes | 710.21 | +0.26% | 1 |
| 1 hour | 709.89 | +0.21% | 1 |
| Today’s close | 704.75 | −0.51% | 0 |
| Tomorrow’s close | 716.89 | +1.20% | 1 |
| Close 5 sessions on | 741.17 | +4.63% | 1 |
- Decision time is the end of the 09:30 ET 15-minute bar (09:45). Spot is that bar’s close.
- Prism by GEXfreak saved its levels for 13 QQQ sessions (2026-09-09 to 2026-09-29). Only 7 had a level model built before the 09:45 ET decision, so only those are graded; the other 6 supply prices only, for the ATR and the later closes. That way no level is used before it existed.
- The chance yardstick (the share of ordinary sessions that went up, and how far they went) comes from every ordinary QQQ session, 2018–2024. Spot is the close of the 09:30-09:45 bar, the last minute at 09:44. The horizon prices are the closes at 09:59 (15 minutes later), 10:44 (1 hour later) and 15:59 (the close), and the daily closes 1 and 5 sessions later. Up and down mean a move of more than 0.05% from spot, flat a move within it. The reach curve is the share of sessions whose high (low) after 09:45 went at least this many ATRs above (below) spot, with ATR the average true range of the 14 sessions before. Sessions missing a one-minute bar at 09:44, 09:59 or 10:44, or ending before 15:55, are left out. This is every ordinary session, not sessions picked by any signal: it is the yardstick a read has to beat, not a forecast.
- This session’s levels: Model built Sep 16, 07:01 ET, before the 09:45 ET decision. Its expiry: the same day’s own expiring options. Prices: Tradier’s delayed feed (its sandbox tier): real prices, delivered 15 minutes late.
- Sep 9, Sep 10, Sep 11, Sep 17, Sep 18, Sep 21 had levels built after the 09:45 ET decision, so they supply prices only.
- These are recorded sessions, not ledger entries. The read is yours, and the whole session is on the chart once you reveal it, so this is a scoring drill, not a test of foresight.
- A grade has no fills, stops, costs or R. Only the direction score depends on the horizon; level behavior and path always run from the decision to the close.
- The earliest sessions carry prices from Databento’s single-venue Nasdaq feed and the later ones from Tradier’s delayed feed (its sandbox tier): real prices delivered 15 minutes late. The ledger grades from its own bar archive, so its grade for the same read could differ by cents in a high or a low, which can turn “touched” into “traded through” or “never reached”.
- The ATR uses only the archived sessions before each date (there is no archive for Sep 14 and 15), so it is a shorter average than the usual 14 sessions for all seven; the number of sessions each ATR averages is listed under the table.
- The open interest behind each level is the vendor’s prior-session figure; its exact time is not recorded. The levels come from the soonest expiry, which on these mornings was that same day’s own expiring options.
Data receipt: 15 sources, built 2026-09-28
Each source is fingerprinted with SHA-256, so a changed file changes the fingerprint. A single file shows its own hash; a source of several files shows one hash of their names and hashes.
- QQQ recorded session, 2026-09-09 (prices only) ·
685d2c6fdfa912dc… - QQQ recorded session, 2026-09-10 (prices only) ·
7396bc0d70de9faa… - QQQ recorded session, 2026-09-11 (prices only) ·
d37720817be62846… - QQQ recorded session, 2026-09-16 ·
7bb76cb37888a6dc… - QQQ recorded session, 2026-09-17 (prices only) ·
e039ff366b8092b5… - QQQ recorded session, 2026-09-18 (prices only) ·
1be92f6223c38b36… - QQQ recorded session, 2026-09-21 (prices only) ·
533df8605ec9a197… - QQQ recorded session, 2026-09-22 ·
be1daed879471f75… - QQQ recorded session, 2026-09-23 ·
2f5356e7194ad8cd… - QQQ recorded session, 2026-09-24 ·
e55fb3e950daeb29… - QQQ recorded session, 2026-09-25 ·
9fe294fee66991fd… - QQQ recorded session, 2026-09-28 ·
95bdf6397c4a86c2… - QQQ recorded session, 2026-09-29 ·
f28884f744aa251b… - QQQ one-minute bars, regular hours (the chance yardstick) (80 files) ·
6970e6880835fdf7… - QQQ daily prices, regular hours (the chance yardstick) ·
98b03f4add721f50…
The three scores
Write the read before 09:45 ET, when the first 15-minute bar (09:30–09:45) closes, then record that bar’s close as your price, the spot. This page shows you the session first; in your log, write the read first. On Sep 16 the spot was 708.39, with the call wall at 710.00, the put wall at 700.00 and the gamma flip at 706.81. The levels are Prism’s own saved morning models for that session, built before 09:45 from the soonest-expiring options, which on these mornings were that day’s own expiring contracts; none was recomputed afterwards. Below, a bullish read; for a bearish read flip the signs. The 09:45 decision time is this page’s choice and the 0.05% band is the ledger grader’s; for a read made at another time, use that time’s price as the spot (the chance tables here start at 09:45, so their odds will be off).
- Direction (Right, Half or Wrong: 1, ½ or 0). Compare the price at your horizon with the spot. Up by 0.05% or more: Right. Down by 0.05% or more: Wrong. Within 0.05% either way: Half. On Sep 16, 704.75 at the close is −0.51%: Wrong. At one hour it was 709.89, +0.21%: Right.
- Level (Matched or Missed). Use the highest and lowest price after 09:45. “Traded through” means price went beyond the level; a wick counts, and so does a print one cent past. “Landed on it” means the high or low equals the level to the cent. A “breaks” read is Matched only if price traded through the level. A “holds” read is Matched if price never traded beyond it, even if it never got close, so a Match only means something next to its chance odds (see “What chance gives you”). The high was 711.85, past the 710.00 call wall: traded through, so “breaks” is Matched. The low, 700.00, landed exactly on the put wall.
- Path (a number). How much room price gave you against how much it took: ((highest price after 09:45 − spot) − (spot − lowest price after 09:45)) ÷ ATR. On Sep 16: up $3.46 (711.85 − 708.39), down $8.39 (708.39 − 700.00), so (3.46 − 8.39) ÷ $8.02 = −0.615. Above zero, price gave you more room than it took.
- ATR, the average size of a day’s move. Use the daily ATR(14): add ATR with length 14 to a daily chart of regular-hours bars and read yesterday’s value. This page’s archive of recorded sessions is short (it begins on Sep 9 and skips Sep 14 and 15), so each ATR here averages only 3 to 12 sessions: Sep 16 uses 3, with true ranges Sep 9 $5.66, Sep 10 $9.41, Sep 11 $8.99, an average of $8.02. The first archived day has no earlier close, so its true range is its high-to-low range, and a day that follows a gap in the archive is measured from the last archived close. Your ATR(14) will differ, and so will your path score.
- Only direction depends on the horizon you name. Level and path always run from the decision to the close, so for a read longer than a day (tomorrow’s close, five sessions on) score direction at your horizon and treat level and path as today-only.
One read, seven sessions
The same read on each of the 7 recorded sessions: direction was right on 3, the level matched on 5 and path was above zero on 3. The call wall was pierced on 5 of 7 mornings, by only $0.35 to $3.13, and direction was right on 3 of those 5: piercing a wall is not the same as a move that holds. “Half” is a move under 0.05%, inside the dead band. The distance column is the wall’s distance above the 09:45 price in ATRs, the last column the share of all QQQ sessions, 2018–2024, whose high after 09:45 went at least that far above the 09:45 price, wall or no wall. Distances use the short ATRs below; with ATR(14) they would be smaller and the chances higher. ATRs used, with the sessions each averages: Sep 16 $8.02 (3), Sep 22 $11.53 (7), Sep 23 $11.02 (8), Sep 24 $10.82 (9), Sep 25 $10.55 (10), Sep 28 $10.16 (11), Sep 29 $10.38 (12). Prism by GEXfreak saved its levels for 13 QQQ sessions (2026-09-09 to 2026-09-29). Only 7 had a level model built before the 09:45 ET decision, so only those are graded; the other 6 supply prices only, for the ATR and the later closes. That way no level is used before it existed.
| Session | Call wall | Distance above spot (ATRs) | High after 09:45 | Close vs 09:45 | Direction | Level | Path (ATR) | Chance: sessions that went that far |
|---|---|---|---|---|---|---|---|---|
| Sep 16 | 710.00 | 0.20 | 711.85 | −0.51% | Wrong | Matched | −0.615 | 68% |
| Sep 22 | 748.00 | 0.32 | 748.35 | +0.42% | Right | Matched | +0.309 | 52% |
| Sep 23 | 750.00 | 0.48 | 744.96 | −0.48% | Wrong | Missed | −0.578 | 34% |
| Sep 24 | 741.00 | 0.38 | 742.66 | +0.57% | Right | Matched | +0.359 | 45% |
| Sep 25 | 745.00 | 0.07 | 745.92 | +0.02% | Half | Matched | −0.282 | 90% |
| Sep 28 | 750.00 | 1.19 | 740.38 | −0.19% | Wrong | Missed | −0.377 | 2.7% |
| Sep 29 | 737.00 | 0.02 | 740.13 | +0.17% | Right | Matched | +0.189 | 96% |
What chance gives you
Direction. On the 1,661 ordinary QQQ sessions from 2018 to 2024, a bullish read judged at the close scored a full point on 52% of sessions and a half on 4%: an average score of 54% with no skill at all. The table gives each horizon; a bearish read faces the mirror image (down plus half the flat). These are QQQ in a period when it mostly rose, and SPY’s averages sit within 0.9 points of QQQ’s; another ticker or period will differ.
Level. The Chance column of the session table is the yardstick for the level score. Add it up: chance alone predicts about 3.9 matches in 7 sessions (give or take about 2.1, so the count lands inside that range about 19 times in 20), and 5 happened, which is within luck on five reads. For a “holds” read, the chance of a Match is 100% minus the table’s odds. These odds start at 09:45, not the open: use them for a read made at 09:45, and “How often price reaches a wall” for a level planned at the open.
Path. On the same ordinary sessions a bullish read’s path score averaged −0.05 ATR (median −0.01) and was above zero on 49% of them; the middle half of sessions ran from −0.42 to +0.39, and the standard deviation across sessions was 0.65 ATR. A path score near zero is what chance gives.
How many reads? Your average direction score has to clear the 54% chance average by more than its own 95% range. On these 7 sessions the average score is 50% (three Right, one Half, three Wrong) and the range is about ±38 points (=100/SQRT(7)): five reads say nothing. At 30 reads it is about ±18 points, so a hot or cold month tells you almost nothing. To be 95% sure a 60% average is not luck, and to catch a real 60% four times in five, you need about 638 reads, roughly 30 months at one a day: =((1.96*SQRT(0.545*0.455)+0.8416*SQRT(0.6*0.4))/(0.6-0.545))^2. “How many trades until you know?” has the arithmetic.
| Horizon | Up (score 1) | Flat (score ½) | Down (score 0) | Average score by chance |
|---|---|---|---|---|
| 15 minutes later | 44% | 18% | 38% | 53% |
| 1 hour later | 48% | 9% | 43% | 53% |
| Today's close | 52% | 4% | 43% | 54% |
| Tomorrow's close | 54% | 3% | 43% | 56% |
| Close 5 sessions on | 59% | 2% | 39% | 60% |
How often a level gets touched, by distance
The share of ordinary QQQ sessions whose high (or low) after 09:45 went at least this many ATRs beyond the 09:45 price. Read your level’s distance =ABS(C2-B2)/I2 in ATRs; between two rows, draw a straight line. At zero distance the odds are 100%, so the closest of these five levels, 0.02 ATRs above the price, reads about 96% (its exact share is 96%: the Chance column uses exact shares, so a straight-line reading can run a point or two off). Beyond 1.50 ATRs the odds are under 0.7% above and 3.1% below. A level 0.02 to 1.19 ATRs above the 09:45 price was reached by the close 2.7% to 96% of the time.
| Distance (ATRs) | Level above: high went this far | Level below: low went this far |
|---|---|---|
| 0.05 | 92% | 90% |
| 0.10 | 85% | 83% |
| 0.25 | 62% | 61% |
| 0.50 | 32% | 34% |
| 0.75 | 14% | 19% |
| 1.00 | 5.7% | 9.7% |
| 1.50 | 0.7% | 3.1% |
Grade your own reads
Nine steps, in a spreadsheet. The scores do not need gamma: any level you can name works, such as yesterday’s high or a round number. Formulas below are for row 2 and fill down.
- 1. One row per read. Columns: A date, B spot (the 09:45 close), C level, D side (bull or bear), E breaks or holds, F price at your horizon, G highest price after 09:45, H lowest price after 09:45, I daily ATR(14) as of yesterday, J direction, K level, L path, M chance of a Match, N horizon (eod, 1h, 1d or 5d), O chance average score for that horizon (a bullish read: the last column of the horizon table; a bearish read: 100% minus it), P distance in ATRs, Q odds the level is reached, R note.
- 2. Before the 09:45 bar closes, write the read: side, the level and its price, breaks or holds, and the horizon. Take levels from your own tool or from the Level map in Prism by GEXfreak (live SPY, QQQ and IWM books need a membership), and write down which tool and which expiry window; levels from other windows will not match the ones here.
- 3. When the 09:45 bar closes, type its close into B. Do not change the read.
- 4. Direction, for either side: J2 =IF(D2="bull",IF(F2/B2-1>=0.0005,1,IF(F2/B2-1<=-0.0005,0,0.5)),IF(F2/B2-1<=-0.0005,1,IF(F2/B2-1>=0.0005,0,0.5)))
- 5. At the close, read G and H off a 15-minute chart of regular-hours bars (or use the MAX of the highs and MIN of the lows of the bars after 09:45 from an export; the 09:30 bar is not one of them). Level, for a level above or below the spot and either behavior: K2 =IF(IF(C2>B2,IF(E2="breaks",G2>C2,G2<=C2),IF(E2="breaks",H2<C2,H2>=C2)),"Matched","Missed")
- 6. Path: L2 =IF(D2="bull",((G2-B2)-(B2-H2))/I2,((B2-H2)-(G2-B2))/I2)
- 7. Chance of a Match. Type the “How often a level gets touched” table into S1:U9 (S distance, T level above, U level below), with a first row of 0, 100%, 100%. Then P2 =ABS(C2-B2)/I2, and for a level above the spot Q2 =IF(P2>=$S$9,$T$9,FORECAST(P2,OFFSET($T$1,MATCH(P2,$S$2:$S$9,1),0,2),OFFSET($S$1,MATCH(P2,$S$2:$S$9,1),0,2))); for a level below use column U in place of T. Then M2 =IF(E2="breaks",Q2,1-Q2).
- 8. Check the sheet on one real row: B 708.39, C 710.00, D bull, E breaks, F 704.75 (the close), G 711.85, H 700.00, I 8.02. You should get J 0 (−0.51%: Wrong), K Matched, L −0.615, P 0.20 and Q about 70% (the session table’s exact share is 68%). A note for R: the longest run of closes above the wall was seven straight 15-minute bars (10:45 to 12:30); the day closed at 704.75, under it.
- 9. Keep every read, good or bad. After 30 or more reads, compare: your average score =AVERAGE(J2:J31) with =AVERAGE(O2:O31), give or take =100/SQRT(COUNT(J2:J31)) points; your Matched count with =SUM(M2:M31), give or take =2*SQRT(SUMPRODUCT(M2:M31,1-M2:M31)); and your average path =AVERAGE(L2:L31) with −0.05, give or take =2*STDEV(L2:L31)/SQRT(COUNT(L2:L31)) (about ±0.23 ATR at 30 reads). A gap inside those bands means no evidence yet, and until you have about 100 reads a result is practice, not evidence.
What this does not say
The chart shows the whole session once you show it, so this is a scoring drill, not a test of foresight. Seven sessions, one ticker and one read say nothing about whether the levels predict anything. Path ignores whether the high or the low came first, which matters if you would have been stopped out. The yardstick is QQQ, 2018–2024; for your own ticker, work out for each day the high after the 09:45 price minus that price, divided by the ATR, and count how often it reaches your distance: =COUNTIF(range,">="&d)/COUNT(range).
The levels are Prism’s own saved morning models, none recomputed afterwards: the strike with the most gamma, from the vendor’s prior-session open interest, whose exact time is not recorded. Only the 7 of 13 recorded QQQ sessions whose model was built before 09:45 are graded, so no level is used before it existed. The prices are real but come from a delayed vendor feed, while the ledger grades from its own bar archive, so a cent’s difference in a high or a low can turn “landed on it” into “traded through”.
Sources and editorial notes
Read the primary references and editorial policy
Published by GEXfreak. Prism by GEXfreak is the chart product these guides describe. Every figure comes from recorded market history: prices, option open interest and recorded sessions. Where a figure shows trade results, the trades are back-tested, not placed. This is product education, not independent investment research.
Each figure lists its data sources and their SHA-256 fingerprints under “Table, method and data source”.
For the product’s calculation and data boundaries, read Prism’s methodology.
Open the workspace.
Prism’s ledger grades Prism’s own published setups with this same grader; it does not grade reads you enter. The prices on this page are recorded history and the levels are Prism’s saved morning models, not a live book.
Create an account to save your layout; review current access conditions on the pricing page.