ES: 63.0% of gaps filled; NQ: 59.9%. Remaining gaps did not fill.
2025 ES and NQ gap sessions. A fill means price reached the prior close during the measured session.

87 ES gaps stayed open

ES filled 148 of 235 qualifying gaps. The other 87 never got back to the prior close during the session we measured. NQ filled 142 of 237, leaving 95 open. You can see both sides of that result below.

MarketGap sessionsFull fillUnfilledHalf fill
ES235148 (63.0%)87 (37.0%)184 (78.3%)
NQ237142 (59.9%)95 (40.1%)181 (76.4%)

We’d keep those unfilled counts next to any gap-fill percentage. If you’re staring at yesterday’s close waiting for price to come back, 87 ES sessions and 95 NQ sessions didn’t give you that return in this sample. You don’t get to know which group today belongs to at the open.

The halfway point was reached more often. ES got there in 184 sessions, or 78.3%. NQ reached it in 181, or 76.4%. Full fills are included in those halfway counts. Don’t add the columns together.

A closer target gets touched more often here. Whether you can trade that with an entry, a stop and a sensible payoff is a separate test. We haven’t run that test in this paper.

Which gap we’re measuring

We’re comparing the current session’s open with the previous stored session’s close. The difference has to be at least 0.25 points, which is 1 tick on ES and NQ. Both gap directions count. There’s no additional filter for size or weekday.

For a gap up, price has to trade down to the previous close for a full fill. For a gap down, it has to trade up to that close. Trading through the close counts too. A half fill reaches the midpoint between the open and that close.

Check those reference prices before you compare this with another gap study. An evening futures reopen, a settlement price and a 9:30 a.m. open can give you different gaps. This paper measures the last one against the prior stored cash-session close.

How we built the sample

We used Edgeless, our session research engine, with the stored ES.F and NQ.F profiles for 2025. The study window is January 1 through December 31. The available rows start January 2. The last stored session from 2024 provides the first prior-session comparison.

The hours matter here. We measured 9:30 a.m. to 4 p.m. Eastern, using America/New_York for daylight saving time. The 4 p.m. bar is excluded. If your chart includes the overnight session, you’re looking at a different range.

Both sessions in a pair need exactly 390 one-minute bars. That leaves 237 eligible pairs out of 249 stored sessions for each market. The 12 excluded pairs include short or incomplete sessions and the comparisons that depend on them. Having 390 bars doesn’t prove every price is right. It gives this sample a consistent stored bar count.

MarketStored 2025 sessionsEligible pairsExcluded pairs
ES24923712
NQ24923712

We kept the original session pairs. Removing a short session doesn’t let the next day reach back to some other close. “Previous” means the previous stored session throughout this paper. Exchange-calendar completeness and contract-roll handling haven’t been independently certified. The profiles use calculation version edgeless-session-profile-v1.

Each eligible pair went through the Edgeless report separately. Its result was also checked directly against the price boundaries before the counts were added up. We used the same 2025 window and bar-count rule for both studies. There’s no search through weekday or other filters to get the biggest percentage.

What we still don’t know from these counts

A session’s open, high, low and close can tell us whether price reached the prior close. They can’t tell us how painful the trip was. You could get a fill after price first moves a long way against a position. The fill still counts here.

We can’t recover time to fill or the order of touches from those 4 prices either. There’s no simulated entry, stop or exit. Fees and slippage aren’t modeled. Calling 63.0% a trade win rate would give the count a meaning it doesn’t have.

We’re looking at 1 year of futures sessions. A different year or session definition can change the result. ISO, GRID and GLITCH aren’t inputs to this study, so these counts don’t validate those options models. If you put a gamma level beside the prior close, keep track of where each reference came from.

Download the numbers

The aggregate counts are free to download as a CSV. You can also open the study summary as JSON for the session definitions and exclusions. The counts are unrounded. Divide an outcome by its sample size and round to 1 decimal place to reproduce the percentages here.

You can read our inside-open study next. It follows the prior high and low after price opens within that range.