Correction · 20 September 2026
Study 01 originally described its 41,796 five-minute observations as coming from 522 sessions. That description was wrong. The observations span 548 sessions, including 26 shortened and holiday sessions. The 522 figure belongs to Study 02, which measures whole days and therefore excludes incomplete ones.
Across all 41,796 observations the median range is 28.0 NQ points. Restricted to the 522 complete-enough sessions used by Study 02, the sample is 40,716 observations and the median is 28.5 points. Under the stricter rule now used, a session with all 390 minutes present, it is 39,858 observations and again 28.5 points.
The number moved by half a point. The substantive conclusion is unchanged: a stop of ten or fifteen points sits well inside the range an ordinary five-minute NQ candle covers. Both figures are published side by side below rather than one of them being chosen after the fact.
A second, smaller correction: the row counts published for the dataset were taken from three different stages of the pipeline and presented as though they were one subtraction. The full ledger is now below, and it balances.
Both were found by an external reviewer who checked our arithmetic rather than taking it on trust. We would rather publish this than quietly edit the pages.
The chain, and where it stops
One thing first, so nothing below is read as more than it is. This chain is complete from the Quantower export onward. It is not complete behind it. Which market-data provider stood behind that connection is not recorded in the export metadata, so the link between the exchange and the export is the one part of this we cannot show you.
Our one-minute bars are not supplied by a vendor as bars. They are built here, from individual trades. That is worth stating plainly, because it means the high and the low of every candle we publish are the output of our own aggregation, not of somebody's API.
Every row accounted for
The three numbers we used to publish came from different stages, so they did not subtract cleanly. This is the whole ledger for NQ.
The 654 rows are simply bars from 18 September onward, removed because the snapshot is frozen at the seventeenth. They were never missing; they were never in scope. ES needs no such ledger: it arrived with no duplicate rows at all, and 716,615 bars go in and come out.
The duplicates, and why keeping the first copy is safe
Roughly 7.6% of the raw NQ rows shared a timestamp with a row already counted. That is a large fraction, and the honest question is not how many there were but whether the copies disagreed. If two rows carry the same minute but different highs, choosing one of them silently changes a measurement.
So we checked all of them.
Seven timestamps in the entire dataset carry conflicting values, and not one of them falls inside the session window every published figure is drawn from. Five sit at 19:59 and two at 06:57, New York time. The rule of keeping the first copy therefore cannot have moved any number on this site, and that is a fact you can check rather than a reassurance you have to accept.
The cause turns out to be mundane. Several historical exports cover overlapping date ranges, so the same minutes were exported more than once. These are repeated exports, not two contracts printing at the same moment.
Which contract, and the part that is not uniform
Most of the window was exported under Quantower's continuous front-month symbol /NQ:XCME, covering 23 June 2024 to 30 June 2026. A handful of later exports used the named September 2026 contract, /NQU26:XCME. From 12 July 2026 the rows come from the desk's live recordings instead.
That is not a single uniform construction, and we are not going to describe it as one. Contracts are not back-adjusted. For the two measurements published here it does not matter: the high-to-low range of a candle and the timing of a session extreme are both unaffected by shifting every price in a series by a constant. It would matter a great deal for anything measuring returns across a roll, which is why no such study is published.
What counts as a session
A full session on our window is 390 one-minute bars, 09:30 through 15:59. We previously accepted any session with at least 350, which allowed a day to be missing up to forty minutes. For a study about when the high of the day is printed, that is too loose: the missing stretch could contain the high.
Study 02 now requires every one of the 390 minutes to be present, checked against the expected grid rather than by counting rows. The looser version is kept so the two can be compared, which is more useful than swapping one number for another.
| NQ, first hour | At least 350 bars | All 390 minutes |
|---|---|---|
| Sessions in the sample | 522 | 511 |
| High or low already set | 81.0% | 80.8% |
| Both extremes already set | 3.4% | 3.5% |
Tightening the completeness rule moved the headline by two tenths of a percentage point. The result is not an artefact of how generous the filter was. The same check on ES moves it from 75.1% to 74.6%.
Study 01 under three different populations
A five-minute candle does not need a complete day to be a valid observation, which is why Study 01 does not exclude shortened sessions. Here is what happens if it does.
| Population | Candles | Sessions | Median range |
|---|---|---|---|
| Every session in the window | 41,796 | 548 | 28.0 pts |
| Sessions with at least 350 bars | 40,716 | 522 | 28.5 pts |
| Sessions with all 390 minutes | 39,858 | 511 | 28.5 pts |
ES is unmoved by the same test: 5.75 points under all three.
What we still owe you
- The upstream feedQuantower is the platform the ticks were exported through. Which market-data provider stood behind that connection is not recorded in the export metadata, so we are not going to name one.
- The raw barsThe lab cannot redistribute them. What is published instead is the aggregated output and the code that produced it, which means the methodology is auditable and the analysis is reproducible against any clean one-minute dataset, but the exact figures here are not reproducible from our data by an outsider. Saying otherwise would be the same kind of overclaim this page exists to avoid.
- Adverse excursionThe range of a candle is not the loss a trade would have taken from an entry inside it. That study is worth doing and has not been done, and until it is, nothing here should be read as the probability of a stop being hit.
Take the audit and check it yourself
Every figure on this page is produced by one script, which reads the source files and writes a single JSON file. Nothing here was typed in by hand. Both are published, so you can read exactly what was counted and how.
The JSON carries the row ledger, the duplicate analysis, both session populations, every half-hour block and both runs of Study 02. The script is the one that produced it. What we cannot publish is the raw bars themselves, which we are not licensed to redistribute.
Snapshot v1 is frozen. sha256, first 16 characters: audit_v1.py fca282ea6eb5ebc6 · audit_v1.json 73afa80e1d578f24 · mae.py 85c280b5f8a0d48d · mae_v1.json 2888bd568ccc99cf.