SDES  /  VPOC Migration Pro  /  Data

ES VPOC migration — April 2026

Aggregated from VPOC Migration Pro session logs across 15 trading days in April 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: 15RTH 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.

15
Trading days (RTH)
9:30–16:00 ET only
712
Total VPOC shifts
47 / trading day
649
Naked touches
43 / trading day
1,014
DVPOC changes
68 / trading day
1.64
Avg shift size (pts)
Max: 49.00
1,164.75
Cumulative migration (pts)
77.65 pts / trading day
+211.25
Net directional move (pts)
+14.08 pts / trading day
+13.72
Avg session net (pts)
Initial → final VPOC per session
↑ Up shifts: 25/day (52.1%)↓ Down shifts: 23/day (47.9%)

April 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
no data
2
no data
3
no data
4
weekend
5
weekend
6
no data
7
no data
8
no data
9
70 shifts
+58.25 pts
10
31 shifts
-23.00 pts
11
weekend
12
weekend
13
63 shifts
+20.00 pts
14
51 shifts
+63.00 pts
15
90 shifts
+59.50 pts
16
49 shifts
+5.25 pts
17
71 shifts
+37.00 pts
18
weekend
19
weekend
20
39 shifts
-10.75 pts
21
29 shifts
-36.50 pts
22
36 shifts
+9.00 pts
23
32 shifts
+15.25 pts
24
67 shifts
+25.00 pts
25
weekend
26
weekend
27
18 shifts
-2.25 pts
28
45 shifts
-1.25 pts
29
21 shifts
-7.25 pts
30
no data

15 trading days with data · 7 weekdays 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): 643 matched tested + 69 still naked = 712 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? →

31.38
Avg VPOC range / segment (pts)
Median: 26.00 · Max: 63.00
17
Median distinct VPOC prices
Avg: 18.4 per segment
7.3
VPOC shifts / RTH hour
Over 97.5 RTH hours
20.0%
DVPOC → VPOC confirmation
127 of 634 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

4m 56s
Avg time naked before touched
Mean across 643 matched touches
5s
Median time naked before touched
Half are faster, half are slower
75%
Touched within 1 minute
485 of 643
4%
Naked > 30 minutes
24 of 643

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 sec30/day (70%)0.650.256.25
30 sec – 1 min2.1/day (5%)1.701.504.25
1 – 5 min4.5/day (10%)2.202.007.00
5 – 30 min4.5/day (10%)5.134.2514.00
Over 30 min1.6/day (4%)9.229.2522.00

When VPOC migrated most

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

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 15 trading days, divided by 15). 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
24.02 pts/session · 23.3 shifts
(360.25 pts total · 349 shifts)
-0.65 pts/session
10:00–11
14.08 pts/session · 8.4 shifts
(211.25 pts total · 126 shifts)
+3.18 pts/session
11:00–12
9.80 pts/session · 2.9 shifts
(147.00 pts total · 44 shifts)
-0.33 pts/session
12:00–13
8.47 pts/session · 2.3 shifts
(127.00 pts total · 34 shifts)
+3.63 pts/session
13:00–14
4.10 pts/session · 2.5 shifts
(61.50 pts total · 37 shifts)
-0.17 pts/session
14:00–15
3.43 pts/session · 1.9 shifts
(51.50 pts total · 29 shifts)
+1.33 pts/session
15–16:00
13.75 pts/session · 6.2 shifts
(206.25 pts total · 93 shifts)
+7.08 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
20 / day (41.3%)
0.50 pts
6.1 / day (12.9%)
0.75 pts
3.3 / day (6.9%)
1.00 pts
3.9 / day (8.3%)
1.25–2.00 pts
6.7 / day (14.2%)
2.00–5.00 pts
5.1 / day (10.8%)
5.00+ pts
2.7 / day (5.6%)

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.25
Big-shift threshold (pts)
90th percentile of 712 RTH shifts
83
Big shifts (top 10%)
5.5 per trading day
49.00
Largest single shift (pts)
Thu 15:16

By hour of day

09:30–10
25 big shifts (30%) · 1.67/day
10:00–11
14 big shifts (17%) · 0.93/day
11:00–12
10 big shifts (12%) · 0.67/day
12:00–13
9 big shifts (11%) · 0.60/day
13:00–14
8 big shifts (10%) · 0.53/day
14:00–15
4 big shifts (5%) · 0.27/day
15–16:00
13 big shifts (16%) · 0.87/day

By day of week

Monday
2.0/monday (7%) · 3 mondays
Tuesday
7.0/tuesday (25%) · 3 tuesdays
Wednesday
5.3/wednesday (19%) · 3 wednesdays
Thursday
6.3/thursday (23%) · 3 thursdays
Friday
7.0/friday (25%) · 3 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

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

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

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

On the Naked side, 712 levels became naked during the month (when a VPOC shift moved away from them), and 90% of those were tested before their session ended. The median naked level sat untouched for 5s before being revisited; the mean was 4m 56s. 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 20.0% of the time (127 of 634 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 April is 15 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