SDES  /  VPOC Migration Pro  /  Data

ES VPOC migration — May 2026

Aggregated from VPOC Migration Pro session logs across 7 trading days in May 2026. RTH only (9:30–16:00 ET) — pre-market and overnight events excluded from this analysis. (The addon itself supports Globex, RTH, or Custom session presets — your own logs can include ETH if you set it that way.) All numbers below are real — not modeled, not back-tested, not simulated.

Instrument: ESTrading days: 7RTH 09:30–16:00 ET
Exclude opening:Active: excluding first 1 min (matches BMBridge opening buffer)

What happened this month

Filter Active · 1-Min Opening Buffer
All numbers on this page exclude VPOC activity in the first 60 seconds of RTH (9:30:00–9:30:59 ET) — the window where the developing volume profile flickers before volume settles. This matches the opening buffer used by the companion BMBridge tool. Click None in the filter bar above to see raw unfiltered counts, or extend the buffer to 5, 10, 15, or 30 minutes.

Every chart and card below updates live when you change the filter — event counts, cumulative migration, net directional, session activity, naked lifetime, the hour-by-hour activity chart, and big shifts. The filter bar stays visible as you scroll.

7
Trading days (RTH)
9:30–16:00 ET only
348
Total VPOC shifts
50 / trading day
317
Naked touches
45 / trading day
584
DVPOC changes
83 / trading day
1.51
Avg shift size (pts)
Max: 36.50
524.00
Cumulative migration (pts)
74.86 pts / trading day
+54.00
Net directional move (pts)
+7.71 pts / trading day
+10.57
Avg session net (pts)
Initial → final VPOC per session
↑ Up shifts: 26/day (52.6%)↓ Down shifts: 24/day (47.4%)

May 2026 — day by day

One cell per calendar day. Green border = trading session captured. Amber dashed = weekday with no data (PC off, holiday, or no sessions). Muted = weekend. Each green cell shows that day's shift count and net-directional move (color-coded). Hover any cell for full stats.

Mon
Tue
Wed
Thu
Fri
Sat
Sun
1
68 shifts
+6.75 pts
2
weekend
3
weekend
4
87 shifts
-21.75 pts
5
13 shifts
+19.50 pts
6
70 shifts
+40.75 pts
7
39 shifts
-39.00 pts
8
47 shifts
+24.00 pts
9
weekend
10
weekend
11
24 shifts
+23.75 pts
12
no data
13
future
14
future
15
future
16
weekend
17
weekend
18
future
19
future
20
future
21
future
22
future
23
weekend
24
weekend
25
future
26
future
27
future
28
future
29
future
30
weekend
31
weekend

7 trading days with data · 1 weekday missing (PC off, holiday, or no sessions). Hover any green cell to see the full day stats.

Raw data downloads: events.csv — every parsed event with prices, sizes, RTH flag (audit any aggregate). · daily_summary.csv — per-day rollups with invariant check. Open in Excel to verify any number on this page.

✓ Sanity check (per dedup spec): 310 matched tested + 38 still naked = 348 migrations

Range, activity rate, and DVPOC confirmation

DVPOC here means Developing VPOC — the live intraday challenger to the current VPOC. Not the Daily VPOC (some traders use the same acronym for the prior day's settled point of control). What's the difference? →

35.07
Avg VPOC range / segment (pts)
Median: 30.00 · Max: 65.50
17
Median distinct VPOC prices
Avg: 18.6 per segment
7.6
VPOC shifts / RTH hour
Over 45.5 RTH hours
21.7%
DVPOC → VPOC confirmation
64 of 295 shifts

DVPOC confirmation is the rate at which a VPOC shift landed on the price the Developing VPOC was already pointing to. It’s a historical observation, not a forecast signal — it tells you how often the addon’s DVPOC anticipated the next VPOC shift in past sessions.

How long Naked VPOCs sat untouched

7m 54s
Avg time naked before touched
Mean across 310 matched touches
2s
Median time naked before touched
Half are faster, half are slower
78%
Touched within 1 minute
242 of 310
6%
Naked > 30 minutes
18 of 310

Quick touches vs slow touches — how far did the VPOC drift?

Each Naked level is bucketed by how long it stayed untouched. For each bucket, we measure the maximum distance the current VPOC drifted from the Naked level during its naked window. The expectation: quick touches happen because the VPOC barely moved away; slow touches survive because the VPOC drifted farther before snapping back.

Time naked before touchedLevels per dayAvg distance VPOC drifted (pts)Median (pts)Max (pts)
Under 30 sec31/day (71%)0.490.252.75
30 sec – 1 min3.3/day (7%)1.361.254.00
1 – 5 min4.9/day (11%)2.061.887.75
5 – 30 min2.3/day (5%)2.882.626.00
Over 30 min2.6/day (6%)12.758.2536.25

When VPOC migrated most

Bucket size:
09:3010:0011:0012:0013:0014:0015:00
252.71.96.33.34.06.4

Each column is one time bucket in the RTH window (9:30–16:00 ET). Numbers shown are per-trading-day averages. Darker green = more VPOC shifts per typical session in that window. Hover any cell to see the raw total across all trading days. Toggle the bucket size to zoom in: 1 hour shows the broad shape, 15 min shows minute-level micro-structure.

Where the VPOC moves most in a typical session

Two views of activity, both shown as per-session averages (total across 7 trading days, divided by 7). Avg migration distance / session = how many points the VPOC typically moves in this hour on a single trading day. Avg net move / session = signed direction — positive bars (green) mean VPOC typically drifts up in this hour, magenta means net down. The cumulative totals across the full month appear in smaller text underneath each row for context.

Hour (ET)Avg migration distance / sessionAvg net move / session
09:30–10
23.50 pts/session · 25.1 shifts
(164.50 pts total · 176 shifts)
+5.00 pts/session
10:00–11
12.54 pts/session · 2.7 shifts
(87.75 pts total · 19 shifts)
+2.75 pts/session
11:00–12
8.71 pts/session · 1.9 shifts
(61.00 pts total · 13 shifts)
+6.79 pts/session
12:00–13
8.07 pts/session · 6.3 shifts
(56.50 pts total · 44 shifts)
-3.43 pts/session
13:00–14
1.93 pts/session · 3.3 shifts
(13.50 pts total · 23 shifts)
+0.21 pts/session
14:00–15
2.39 pts/session · 4.0 shifts
(16.75 pts total · 28 shifts)
-0.32 pts/session
15–16:00
17.71 pts/session · 6.4 shifts
(124.00 pts total · 45 shifts)
-3.29 pts/session

Not a return metric. These bars measure how much the Volume Point of Control moved — not P&L. Most activity does not imply best trading hours; it implies most fair-value contention, which can cut either way.

How big the shifts were

0.25 pts
25 / day (51.1%)
0.50 pts
5.3 / day (10.6%)
0.75 pts
2.7 / day (5.5%)
1.00 pts
2.0 / day (4.0%)
1.25–2.00 pts
6.1 / day (12.4%)
2.00–5.00 pts
5.7 / day (11.5%)
5.00+ pts
2.4 / day (4.9%)

ES futures move in 0.25-pt ticks, so most VPOC shifts are exactly one tick. The long tail toward larger shifts captures moments when volume migrated more aggressively.

When the biggest VPOC migrations actually happened

"Big shift" is defined from the data, not a hardcoded number. A shift counts as big if it's in the chosen top percentile by size — switch between Top 25%, Top 10%, or Top 5% to see the threshold shift. The percentile is computed from the currently-filtered set, so it adjusts as you change the opening-bell filter too.

Threshold:
3.00
Big-shift threshold (pts)
90th percentile of 348 RTH shifts
36
Big shifts (top 10%)
5.1 per trading day
36.50
Largest single shift (pts)
Thu 15:55

By hour of day

09:30–10
13 big shifts (36%) · 1.86/day
10:00–11
7 big shifts (19%) · 1.00/day
11:00–12
4 big shifts (11%) · 0.57/day
12:00–13
3 big shifts (8%) · 0.43/day
13:00–14
0 big shifts (0%) · 0.00/day
14:00–15
0 big shifts (0%) · 0.00/day
15–16:00
9 big shifts (25%) · 1.29/day

By day of week

Monday
5.5/monday (31%) · 2 mondays
Tuesday
6.0/tuesday (17%) · 1 tuesday
Wednesday
6.0/wednesday (17%) · 1 wednesday
Thursday
3.0/thursday (8%) · 1 thursday
Friday
5.0/friday (28%) · 2 fridays

Big-shift counts are RTH-only. The threshold (90th percentile) is computed per-period — May's threshold may differ from April's because volatility regimes shift. Day-of-week sample sizes are small for a single month; cross-month patterns will be more meaningful as more sessions log.

Observations

May 2026 produced 348 VPOC shifts across 7 trading days (7 log segments). Direction was balanced. Most active hour: 09:00 ET with 176 VPOC shifts. For every VPOC shift, the addon classifies the prior level as Naked or Tested — this month logged 317 Naked touches (prior VPOCs that price revisited).

At a normalized rate, the VPOC migrated 7.6 times per RTH hour on average. Each log segment held a median of 17 distinct VPOC prices and covered a typical range of 30.00 points from the lowest to highest VPOC observed within that segment.

Cumulatively, the VPOC traveled 524.00 points across all shifts this month — the sum of every individual shift's distance. The signed net was +54.00 points (up), meaning if you summed every shift's direction, the VPOC ended the month a net 54.00 points up from where individual shifts started. Per session, the VPOC moved an average of +10.57 points from open to close.

On the Naked side, 348 levels became naked during the month (when a VPOC shift moved away from them), and 89% of those were tested before their session ended. The median naked level sat untouched for 2s before being revisited; the mean was 7m 54s. The gap between those two numbers reflects the long-tail distribution — most naked levels get tested fast, a small number sit much longer.

When a Developing VPOC was active and a VPOC shift occurred, the shift landed on the DVPOC price 21.7% of the time (64 of 295 eligible shifts). This is a historical observation of how often the addon's Developing VPOC anticipated the next VPOC — it isn't a forecast signal, and shifts that didn't match still happened frequently.

Each shift here represents real volume migration — the market's declared fair value physically moving to a new price as that level absorbed more contracts than any other. This is one trader's chart-time during RTH, not a back-test; sample size for May is 7 trading days.

All of this is logged automatically by VPOC Migration Pro. The addon tracks every VPOC shift, Naked touch, and DVPOC change tick by tick, then writes a timestamped session log you can review for journaling or post-session analysis like this.

See the addon →
✓ APPROVED · LIVE ON THE BOOKMAP MARKETPLACE

Run this on your own chart.

$25/ month
PAID VIA BOOKMAP STORE · LICENSE ENFORCED BY BOOKMAP

Subscribe through Bookmap — billing, license, and refunds are all handled by Bookmap. Your own session logs save locally, just like the ones used to build this page.

⚡ View on Bookmap Marketplace