Market Profile: What It Is and How to Read It in Futures
Updated October 24, 2026
What Market Profile is#
Market Profile is a way of organizing price by time. Instead of looking at one candle after another, it groups the session by price level and counts how long the market traded at each one. The result is a shape that often resembles a bell lying on its side: wide in the middle, narrow at the ends.
The unit of measure is called a TPO, short for Time Price Opportunity. A TPO is a block showing that price touched a level during a given period, usually thirty minutes. The more TPOs a level accumulates, the more time the market spent trading there.
The basic reading is straightforward. Where there are many TPOs, buyers and sellers accepted that price. Where there are few, price moved through because almost nobody wanted to trade in that zone. The profile does not say what will happen: it describes where trading has taken place.
The three levels you read first#
POC, Point of Control: the single price with the most time traded in the session. It is the day's center of gravity and the reference most watched when the market rotates.
Value Area: the band where roughly 70% of the session's time or volume is concentrated. Its upper edge is called VAH, Value Area High, and the lower edge VAL, Value Area Low. Outside that band the market spent little time.
Initial Balance, or IB: the high and low of the first sixty minutes of the regular session. The regular session, or RTH, is the U.S. stock exchange's trading hours, 9:30 a.m. to 4:00 p.m. New York time. The IB sets the day's opening frame.
How a session is classified by its profile#
These levels are used to label each day. A normal day opens, builds a wide initial range and barely extends it afterward. A normal variation extends the range on one side. A trend day pushes in one direction for almost the whole session. A neutral day breaks out of the Initial Balance both above and below.
The table splits ES sessions across those four categories and adds, for each one, how often the next day moved in the same direction.
It is best read with the days column in front of you. The categories do not carry equal weight, and that difference in sample size matters far more than any decimal.
Day types on the regular session and what the next session does
ES
Swipe to see the sample →
| Day type | Frequency | Next session in the same direction | Sessions |
|---|---|---|---|
| Normal | 2.5% | 40.8% | 103 |
| Normal variation | 50.7% | 49.6% | 2,127 |
| Trend | 19.4% | 50.4% | 814 |
| Neutral | 27.5% | 50.6% | 1,155 |
n = 4,199 · 2010-06-07 to 2026-10-09 · historical futures data
ES regular session (9:30-16:00 ET). The day type compares the session's high, low and close with the range of its first hour: Normal = it stays inside that range; Normal variation = it exceeds it on one side; Trend = it exceeds it on one side by more than the size of that range and closes in the outer third of the session; Neutral = it exceeds it on both sides. 'Same direction' = the next session closes against its open in the same direction as this one. 95% confidence interval of the trend row: 46.9-53.8%. The type is only known at the close: at mid-session the class in progress matched the final one in about half of the sessions. An earlier version of this table classified the near-24-hour day, where neutral takes about three quarters; this one measures the regular session. It is what happened, not a signal.
The weekly report, every Sunday
One email a week: what moved the macro picture, next week's calendar, rates and COT positioning, and the new study with its sample size. No signals; unsubscribe in one click.
What the split shows#
Measured in the regular session, 9:30 to 16:00 New York time, the most frequent type is the normal variation: 50.7% of ES sessions, across 2,127 days. On half of the days price extended the first-hour range on one side only.
The neutral day, the one that breaks out of the Initial Balance both above and below, is 27.5%, with 1,155 sessions. The trend day is 19.4%, with 814: one in five. The normal day, the one that never leaves the first-hour range, is the rare one: 2.5%, 103 sessions.
Correction of October 11, 2026: the first version of this table classified the nearly twenty-four-hour day, and there the neutral day took up three quarters of the series. That was an effect of the trading hours, not of the market: with that many hours, the range almost always ends up exceeding the first hour on both sides. This version measures the regular session only.
The next day: what the data does not promise#
The second percentage column measures how often the following session closed in the same direction. After a neutral day, 50.6% across 1,155 ES sessions; after a normal variation, 49.6% across 2,127.
After a trend day, 50.4% across 814 sessions, with a 95% confidence interval of 46.9 to 53.8%. A coin. The 40.8% for the normal day rests on 103 sessions: it is the smallest sample in the table and not enough for a headline.
Put plainly: in this series, knowing yesterday's day type does not anticipate today's direction. And today's type is only known at the close: at mid-session, the class the day was showing matched the final one in about half of the sessions. It is a useful result even if it disappoints, because it avoids building a routine on something the data does not support.
Do poor extremes and single prints attract price?#
Two classic profile ideas say the market leaves unfinished business: a poor high or low, one that ends with two or more letters on the last row instead of a tail, and single prints, interior stretches with one letter per row. The usual reading is that price comes back for them.
Measured in ES from 2010-06-07 to 2026-09-30: a poor extreme was exceeded within the next five sessions 79.1% of the time, over 1,234 cases. But a normal extreme was exceeded 73.6% of the time. The difference is there, four to seven points depending on the horizon, and it is small: any recent extreme gets taken almost three times out of four within a week.
With single prints there is no difference: they were filled within five sessions 72.8% of the time, over 776 cases, against 72.2% for a control stretch of the same size. Price comes back, but it comes back just the same to any stretch.
Magnet or myth? Poor extremes and single prints against a control
ES
Swipe to see the sample →
| Level · horizon | Exceeded or filled | Control | Cases |
|---|---|---|---|
| Poor extreme · 1 session | 55.3% | 48.3% | 1,234 |
| Poor extreme · 5 sessions | 79.1% | 73.6% | 1,234 |
| Poor extreme · 10 sessions | 85.0% | 81.2% | 1,234 |
| Single prints · 1 session | 45.1% | 43.8% | 776 |
| Single prints · 5 sessions | 72.8% | 72.2% | 776 |
| Single prints · 10 sessions | 81.8% | 79.4% | 775 |
n = 2,010 · 2010-06-07 to 2026-09-30 · historical futures data
ES regular session, 7-Jun-2010 to 30-Sep-2026, 30-minute period profile. Poor extreme = the row of the session's high (or low) holds two or more TPOs, no tail. Exceeded = one of the next N sessions trades beyond that extreme. Control = the highs and lows that are not poor. Single prints = the longest stretch of two or more consecutive one-TPO rows inside the profile (tails do not count). Filled = a later session trades through the whole stretch. Control = a stretch of the same size mirrored on the other side of the close. If the level column and the control column look alike, the level does not attract price more than any other. Prices adjusted on contract changes.
Are profile levels reached more often than any other price?#
The previous section compared a poor extreme with a normal one. The tougher comparison is still missing: a profile level against any price sitting at the same distance. If the level attracts price, it should be reached more often.
The table measures it in ES, regular session, from 2010-06-07 to 2026-10-09. At each session's close it takes the nearest unvisited level above and below, and checks whether the next session trades it. The control is not another level: it is how often the next session moved away from its close, in the same direction, by at least that same distance.
The POC of an earlier session was reached 23.1% of the time; any price at that distance, 23.0%, over 6,940 cases. The edge of an earlier value area, 33.0% against 32.5%, over 7,324. An unfilled stretch of single prints, 18.3% against 17.6%, over 3,898. A prior high or low, 26.1% against 26.0%, over 7,489.
The unfinished extreme, the one that leaves no tail, was reached less often than its control: 11.9% against 12.9%, over 3,792 cases. Once distance is controlled for, the four-to-seven-point advantage from the previous section disappears.
No difference exceeds one percentage point. Profile levels are reached just as often as any price at that distance. They are still useful as references to organize the day and name scenarios; what the data does not support is that they pull price.
Do profile levels attract price? Each level against any price at the same distance
ES
Swipe to see the sample →
| Unvisited level | % reached in the next session | Control price at the same distance | Cases |
|---|---|---|---|
| POC of an earlier session | 23.1% | 23.0% | 6,940 |
| Edge of an earlier value area | 33.0% | 32.5% | 7,324 |
| Unfilled single-print stretch | 18.3% | 17.6% | 3,898 |
| Unfinished extreme (no tail) | 11.9% | 12.9% | 3,792 |
| Earlier high or low | 26.1% | 26.0% | 7,489 |
n = 4,149 · 2010-06-07 to 2026-10-09 · historical futures data
ES regular session (9:30-16:00 ET), 7-Jun-2010 to 9-Oct-2026, 30-minute period profile, prices adjusted on contract changes. At each session's close we take, for each type, the nearest unvisited level above the close and the nearest below it, among those left by the previous 250 sessions and no further than 4 ATR (20-session average true range): each session adds up to two cases per type. POC = the row with the most TPOs of a session; value-area edge = the upper or the lower limit of 70% of its TPOs; unvisited = no later session has traded that price. Single-print stretch = the longest inner run of two or more consecutive one-TPO rows; reached = the next session trades through all of it. Unfinished extreme = a high or low whose row holds two or more TPOs (no tail) and that no later session has exceeded; earlier high or low = the other highs and lows not yet exceeded. 'Reached' = the next session trades the level. The control is not a level: for each case it is the share of all the sessions before that date whose next session moved away from its own close, in the same direction, by at least that same distance measured in ATR; the column is its average. If the two columns look alike, the level does not attract price more than any other at that distance. The differences run from −1.0 to +0.7 points; over five sessions, from −0.7 to +2.0. It is what happened, not a signal.
Do the levels a session leaves untouched attract price?#
It is said that price goes back for the levels a session left untouched. We measured it in ES, NQ, YM and RTY, from 7-Jun-2010 to 23-Oct-2026 (RTY since 2017), with four levels: the prior close, the high and low of the Initial Balance and the overnight midpoint, each against a price at the same distance from the close, on the other side.
In the next session, ES traded those levels 18.2% of the time and the control 16.6% (4,416 cases): the same as chance. Within 5 sessions, 49.3% against 49.0%. The same in the other three indices.
One difference does hold up, and it is about the calendar: the levels Friday leaves are traded on Monday less than those of other days at the same distance. In ES, 13.0% against 19.6% (943 Mondays); in YM, 13.0% against 20.1% (944); and in RTY, 11.5% against 20.2% (477). In NQ, the same as chance.
It is frequency, not direction: it does not say where Monday goes, only that it reaches those prices less often.
Levels the regular session left untouched: how often they are traded later, against a price at the same distance
ES, NQ, YM y RTY
Swipe to see the sample →
| Market · window | Level traded | Control | Difference (points) | Reading | Cases |
|---|---|---|---|---|---|
| ES · next session | 18.2% | 16.6% | 1.6 | same as chance | 4,416 |
| ES · within 5 sessions | 49.3% | 49.0% | 0.3 | same as chance | 4,416 |
| ES · on Monday, against the other days | 13.0% | 19.6% | -6.2 | less than the control | 943 |
| NQ · next session | 17.3% | 16.4% | 0.9 | same as chance | 4,391 |
| NQ · within 5 sessions | 47.7% | 48.3% | -0.6 | same as chance | 4,391 |
| NQ · on Monday, against the other days | 14.1% | 18.1% | -3.4 | same as chance | 892 |
| YM · next session | 18.6% | 17.5% | 1.1 | same as chance | 4,417 |
| YM · within 5 sessions | 48.5% | 49.0% | -0.5 | same as chance | 4,417 |
| YM · on Monday, against the other days | 13.0% | 20.1% | -6.5 | less than the control | 944 |
| RTY · next session | 18.4% | 15.3% | 3.1 | same as chance | 2,286 |
| RTY · within 5 sessions | 49.1% | 47.8% | 1.3 | same as chance | 2,286 |
| RTY · on Monday, against the other days | 11.5% | 20.2% | -7.4 | less than the control | 477 |
n = 15,510 · 2010-06-07 to 2026-10-23 · historical futures data
Regular session (9:30-16:00 ET) of ES, NQ, YM and RTY, front contract, 7-Jun-2010 to 23-Oct-2026 (RTY from 10-Jul-2017); complete sessions only (early closes left out) and no contract change between the sessions compared. Levels of a session: the prior session's close (last price at 16:00), the high and the low of its Initial Balance (9:30-10:29 ET) and the halfback of that session's night (midpoint of 18:00 to 9:29 ET). A level counts when the session did not trade it and did not trade its control either; control = the price at the same distance from that session's close, on the other side. The table measures whether a later session trades it: the next one, or any of the next 5 (all on the same contract), paired with the control (McNemar). 'On Monday' rows: the levels Friday left, traded on Monday, against the levels traded in the next session on the other days; the difference is computed inside five buckets of the level's distance in ATR; cases = Monday levels. On Monday, the control around Friday's close was traded 17.8% in ES, 19.5% in NQ, 17.4% in YM, 16.6% in RTY (same cases as the Monday rows). Reading: Benjamini-Hochberg correction at 5% over 54 comparisons, the 46 fixed before looking at any result and the 8 rotation and 5-session ones of these tables, which were not; a cell that does not survive it is 'same as chance'. The four indices move together: their rows are not four independent confirmations. Different: ES · on Monday, against the other days: 13.0% against 19.6%; YM · on Monday, against the other days: 13.0% against 20.1%; RTY · on Monday, against the other days: 11.5% against 20.2%. The rest is same as chance. In the next session and within 5 sessions, an untouched level is traded again as often as any price at that distance. It is what happened, not a signal.
What context does change: the size of the day#
There is one context reading that does leave a mark, and it is not about direction. When ES strings together two or more sessions of rising lows, the next session is smaller; when it strings together falling highs, it is larger.
Measured as the next session's range divided by the 20-session average true range: after a run of rising lows, 0.75 on average over 1,520 sessions, 0.24 less than the rest, with a 95% confidence interval of -0.28 to -0.20. After a run of falling highs, 1.10 over 947 sessions, 0.26 more than the rest, with an interval of +0.20 to +0.31. With no run, 0.93. All sessions, 0.91 over 4,179.
The difference holds in the most recent data: with sessions since 2022 only, it is -0.22 and +0.23.
Direction does not change. The next session closed higher 54.1% of the time after rising lows, 55.4% after falling highs and 54.5% overall. Context says how much room to expect, not which way. It helps with stop distance and position size, not with picking a side.
What a sequence of lows or highs says about the next session: its size, not its direction
ES
Swipe to see the sample →
| At the session's close | Next session's range (mean) | Difference from the rest | Next session closes higher | Sessions |
|---|---|---|---|---|
| After a sequence of rising lows | 0.75 ATR | -0.24 ATR | 54.1% | 1,520 |
| After a sequence of falling highs | 1.10 ATR | 0.26 ATR | 55.4% | 947 |
| No sequence | 0.93 ATR | 0.05 ATR | 54.3% | 1,712 |
| All sessions | 0.91 ATR | -- | 54.5% | 4,179 |
n = 4,179 · 2010-06-07 to 2026-10-09 · historical futures data
ES regular session (9:30-16:00 ET), 7-Jun-2010 to 9-Oct-2026, prices adjusted on contract changes. Sequence of rising lows: it starts on the session that trades above the high of the range in force without losing its low and with a higher low than the previous session's (that day already counts as the second: the minimum length is 2 sessions), goes on while no session trades below the previous session's low and ends on the session that does. Falling highs: the same in reverse. No sequence = the rest; the range in force starts with the two sessions of the day the last sequence ended and widens with each session until one leaves it on one side only. Range = the next session's high minus its low, divided by the ATR (average true range of the 20 sessions ending at the close it is measured from). Difference = the row's mean minus the mean of all other sessions. 95% confidence intervals (standard error over blocks of 10 consecutive sessions): rising lows −0.24 [−0.28 to −0.20]; falling highs +0.26 [+0.20 to +0.31]; no sequence +0.05 [+0.01 to +0.09]. With the sessions from 2022 on only: −0.22 [−0.29 to −0.15] (n = 437) and +0.23 [+0.14 to +0.31] (n = 306). It predicts size, not direction: 'closes higher' = the next session's close ends above this close, and it runs from 54.1 to 55.4% across rows (from 2022 on: 51.9% after rising lows and 54.2% after falling highs, against 52.8% for all sessions). It is what happened, not a signal.
Does the first half hour set an extreme of the day?#
Another often-repeated line says the day's high or low is set in the first half hour almost every time. In ES, over 4,199 regular sessions, it happened 54.3% of the time, with a 95% confidence interval of 52.8 to 55.8%. A little more than half.
Broken down: the low was set in those 30 minutes in 29.8% of sessions and the high in 24.1%. Both at once, in 17 sessions, 0.4%. With the full first hour, which is the Initial Balance, the figure rises to 72.5%.
Two limits. At 10:00 you do not know which of the two extremes will hold, or whether either will: that is only known at the close. And since 2022 the figure is almost the same, 53.7%, so it is not something that is changing.
Does the first half hour set the session's high or low?
ES
Swipe to see the sample →
| What is set | % of sessions | Sessions |
|---|---|---|
| High or low in the first 30 minutes | 54.3% | 2,280 |
| High or low in the first 60 minutes | 72.5% | 3,044 |
| Only the high (30 minutes) | 24.1% | 1,011 |
| Only the low (30 minutes) | 29.8% | 1,252 |
| Both (30 minutes) | 0.4% | 17 |
n = 4,199 · 2010-06-07 to 2026-10-09 · historical futures data
ES regular session (9:30-16:00 ET), 7-Jun-2010 to 9-Oct-2026. Set = the session's final high (or low) first traded between 9:30 and 10:00 ET (until 10:30 in the 60-minute row) and the rest of the session did not exceed it; if price later only equals it, it still counts as set early. 'Only the high' and 'only the low' leave out the sessions in which both were set. 'Sessions' = the number of sessions in which it happened, out of the total shown below. 95% confidence interval of the first row: 52.8-55.8%. With the sessions from 2022 on only: 53.7% in 30 minutes and 71.6% in 60 (n = 1231). Every session with at least 60 traded minutes counts, early closes included. It is what happened, not a signal.
How the profile is used in practice#
The profile serves to describe the session's context, not to decide entries. Knowing whether price is trading inside or outside the prior day's Value Area changes what is reasonable to expect: inside, rotation; outside, a search for a new level.
The second use is organizational. The profile forces you to name, before the open, the levels that matter (POC, VAH, VAL and the Initial Balance extremes) and to write down what you would do in each scenario. That reduces improvisation.
The third is calibration. Each profile reading can be checked against a base rate, meaning the historical frequency with which that same scenario occurred under similar conditions. A reading without a base rate is just an organized opinion.
The limits of this measurement#
The day-type classification is a convention, not a physical measurement. Changing the threshold that separates a trend day from a normal variation moves the percentages. Two sources with different definitions will give different figures for the same days, and neither will be wrong.
The series is ES, regular session, runs from 2010-06-07 to 2026-10-09 and covers 4,199 sessions. It spans very different regimes, from years of low volatility to episodes of extreme stress. The average blends them all and represents none in particular.
There are also three things the profile does not measure. It does not measure who is behind each trade. It does not measure the orders that never got executed. And it does not measure the cost of trading: spread, commissions and slippage are left out of every percentage in this table.
Finally, the normal day row, with 103 cases against 2,127 for the normal variation, is the article's best reminder: a percentage without its sample sounds just as solid as one backed by two thousand observations, and it is not.
To close#
Market Profile answers the question of where trading has taken place, not what will happen. Read that way, it organizes the session and provides a shared vocabulary for talking about value, acceptance and rejection.
Everything above is informational and educational material about reading historical data. It is not personalized investment advice. Past results do not predict future results, and trading futures involves risk of loss.
Free PDF: 20 futures figures with their sample
The figures from our studies on one sheet, each with its n and date range (in Spanish for now). Subscribe to the weekly report and download it right away; the link also comes in the welcome email.
Frequently asked questions
- What happens if price opens outside the previous day's Value Area?
- It indicates the market is not accepting the prior day's value and is probing for a new one. If price stays outside, the day tends to become more directional; if it returns to the range, the move outside turns out to be a false start. It is context for preparing scenarios, not a trade instruction.
- How long does the Initial Balance last?
- Sixty minutes from the open of the regular session. In U.S. index futures that means the 9:30 to 10:30 a.m. window, New York time. If you use a different duration, statistics calculated with a one-hour IB are no longer comparable.
- Does Market Profile work outside of futures?
- The concept applies to any market with a continuous auction. It is more convenient in futures because volume is centralized and the session hours are well defined, which is not the case in markets fragmented across many trading venues.
- Does price come back to an unvisited POC?
- In ES, no more than to any other price at the same distance. The POC of an earlier session was reached in the next session 23.1% of the time, against 23.0% for the control, over 6,940 cases since 2010. The same goes for value area edges and single prints.
- What is the most frequent day type in ES?
- In the regular session, the normal variation: 50.7% of 4,199 sessions since 2010. The neutral day is 27.5%, the trend day 19.4% and the normal day 2.5%. If the nearly twenty-four-hour day is classified instead, the neutral day rises to about three quarters, but that is an effect of the trading hours.
These numbers, instrument by instrument
See all 30 instruments →Where this is used in Perfiltrade
- Markets: price against the IB — Where price sits relative to the Initial Balance (above, below or inside), across 25 instruments.
- In-session Market Profile — Initial Balance, Value Area, POC and profile shape during the session, against their history.
- Week: a summary of what is coming — What is coming this week in a paragraph written by rules, plus an optional AI report with its sources.
The calculation and its limits are in the methodology.
Take it to your chart, free
Open Type: What kind of open did the session have, and what did sessions do after opens like it?

Six outcomes for that open type since 2022 (range, Initial Balance, close inside the prior value area, time of the high or low), each with its n, its interval and the all-sessions value.
How to cite this data
The tables on this page are our own work, built from historical futures data. You may reproduce them, translate them or build on them, including commercially, as long as you credit the source and link back to the original page. If you use them, tell us: we like knowing what they get used for.
Licence: CC BY 4.0
Suggested citation:
Perfiltrade (October 24, 2026). Market Profile: What It Is and How to Read It in Futures. https://www.perfiltrade.com/en/learn/what-is-market-profile
Try these concepts with real data
14 days free, no card. An analysis tool, not investment advice.
See plans →