What Is Market Profile? How to Read a TPO Chart, and the 80% Rule Tested on SPY
Market profile counts how many time periods traded at each price level, building a histogram of time rather than of volume. The price with the most periods is the point of control, and it is not always the same price a volume profile identifies.
Covered on this page: TradingView.
Market profile is a chart that shows how long a market spent at each price. The session is cut into 30-minute periods, each period gets a letter, and the letter is printed at every price that period traded. Stacked sideways, the letters form a histogram whose fattest row is the point of control.
Peter Steidlmayer built it at the Chicago Board of Trade, which released it to the public in 1985. Most explanations stop at the vocabulary. This one draws a real profile from SPY’s five-minute bars, computes its levels by hand, and then tests the rule people ask about most, the “80% rule”, on 80 sessions.
How it works
Step one: cut the day into periods. A US stock session from 9:30 a.m. to 4:00 p.m. Eastern holds 13 half-hours, lettered A (9:30 to 10:00) through M (3:30 to 4:00).
Step two: cut the price axis into rows. For SPY we used 25-cent rows. Every row that a period’s high-to-low range covers gets that period’s letter, once.
Step three: stack the letters. A row printed by eight different periods has eight letters. That count is a TPO count, short for time price opportunity, and it is the only measurement the chart makes. It is a count of time, not of shares or volume.
Step four: mark three levels.
- Point of control: the row with the most letters. When rows tie, a rule has to pick one; ours takes the tied row nearest the middle of the day’s range.
- Value area: start at the point of control and add the bigger neighboring row, above or below, until the band holds 70% of all the letters. Its top is the value area high, its bottom the value area low.
- Initial balance: the high and low of the first two letters, A and B, the first hour.
How to read a TPO chart
Fat rows are prices the market accepted. Several separate half-hours came back there, so buyers and sellers were both willing to deal at that level.
Thin rows are prices it rejected or rushed through. A row with a single letter, a single print, marks a level crossed in one half-hour and never revisited. On SPY, 79 of the 80 sessions had at least one.
The shape is the summary. A fat middle with thin tails is a balanced day. A fat top with a long thin tail below is often called a P shape, the mirror image a b shape, and two fat areas joined by thin rows a double distribution. The names describe the histogram; they do not add a second measurement.
The letters carry the timing. Because each letter is a half-hour, you can read whether the market found its busy price early (letters A to D) or drifted into it late. A bar-style profile throws that away.
The initial balance and range extension
The first hour is the reference most profile traders start from. Price leaving the initial balance is called range extension, and which side it happens on, if either, is the first read of the day.
On SPY it is the normal case, not a signal. Across the 80 sessions, price broke above the first hour’s high only on 29, below its low only on 26, and on both sides on 23. It stayed inside the first hour’s range all day on just 2.
The first hour usually owns a little over half the day. The initial balance covered a median 56.97% of the session’s range, from 14.14% on the narrowest-start day to 100.00% on the two days that never left it. The full day reached at least twice the first hour’s range on 26 of the 80 sessions.
A worked example: SPY on 15 October 2026
Start from yesterday’s value area. On 14 October SPY’s 102 letters spread over 40 rows; the value area held 73 of them, from $767.25 to $772.50.
15 October opened below it, at $766.25. Period A traded from $764.43 to $767.44 and closed at $765.45, still under the value area low.
Then it came back in. Period B closed at $767.37 and period C at $769.62, two consecutive half-hours closing inside yesterday’s value area. That is the 80% rule’s setup: the rule says price should now cross the whole area to the far edge, $772.50.
It did, late. The middle of the day rotated between about $769 and $772. Period L, 3:00 to 3:30 p.m., traded up to $772.87, through the far edge, and the last five-minute bar closed at $771.71.
The day’s own profile came out like this. 107 letters across 35 rows. Three rows tied at 8 letters; the tie rule picked $769.50 to $769.75 as the point of control. The value area held 75 letters (70.09%) from $768.75 to $773.00, and the initial balance ran from $764.43 to $768.03, broken on the upside only. The busiest row by shares traded was $772.00 to $772.25, $2.50 away from the busiest row by time.
What the rule gives you is two prices. On 15 October the setup named the far edge, $772.50, and the edge it came back in through, $767.25, before the move happened. It could not say the move would take until 3:00 p.m.
The original data
The test. Yahoo Finance five-minute SPY bars for 80 full sessions, 10 July to 30 October 2026, 78 bars each, joined from two downloads (3 October and 1 November 2026). Each session was cut into 13 periods and 25-cent rows exactly as described above. The full file has every session’s levels: SPY market profile levels by session.
The 80% rule, tested. The rule as usually stated: if a session opens outside the previous session’s value area and then holds inside it for two consecutive half-hours, price goes on to the far edge of that value area about 80% of the time. “Holds” was read strictly first, as two consecutive periods that close inside, and “reached” means any trade at or through the far edge later the same session.
- 79 sessions had a previous session to compare with. 55 opened outside its value area, 69.62% (30 above, 25 below), and 24 opened inside.
- 18 of those 55 (32.73%) met the two-close condition. 9 of the 18 reached the far edge, 50.00%. Opens above value did better (7 of 12) than opens below (2 of 6), on numbers far too small to separate.
- Under a looser reading, where both periods only need to trade inside the value area, 27 sessions qualified and 10 reached the far edge, 37.04%. MyPivots’ own looser version, a close inside followed by an open inside, gave 10 of 23.
- Of the 37 outside opens that never met the condition, 3 reached the far edge anyway (8.11%).
Read it for what it is: 18 cases, a small sample. The 95% range around 9 of 18 runs from 29.03% to 70.97%, wide enough that the true rate here could be well under or well over a half.
But 80% sits outside that range. A rate of 80% would mean: if the rule really played out 80% of the time, 9 or fewer of 18 would turn up with a probability of 0.43%. On this fund, these months and this definition, the label did not fit. MyPivots, for its part, reports a lower figure from its own E-mini testing. Every session’s open, value area and outcome is in the 80% rule test file.
Time against volume, re-measured. For the volume side, each five-minute bar’s shares were spread evenly over the 25-cent rows it covered, an estimate rather than a tick-level count. The busiest row by letters and the busiest row by shares traded were the same 25-cent row on 16 of the 80 sessions, within one row on 38 and a dollar or more apart on 19; the median gap was $0.50. The time count tied for the top row on 47 sessions, so the tie rule chose the point of control more than half the time.
The busiest row held a median 8.5 of the 13 periods (4 to 13), and the value area covered a median 53.98% of the day’s range. The next session opened inside the previous value area on 24 of 79 days.
Checks. Nasdaq’s daily high and low matched the five-minute bars within $0.05 on 78 of the 80 sessions (on 3 August Nasdaq’s low was $748.80 against $749.10; on 11 August its high was $774.61 against $774.54). The two Yahoo downloads overlap on 3,120 bars: 2,790 agree to the cent, but 113 differ by more than $0.05, the largest by $1.00, spread over 37 sessions, so Yahoo revises some bars after the fact. The newer download was used wherever both exist.
The 80% rule: what the test changes
Keep the logic, drop the number. The idea behind the rule is sound as a description: a market that rejected yesterday’s prices at the open and then spent an hour back inside them is no longer rejecting them. What the SPY sessions do not support is attaching 80% to it.
Write down your version before you use it. Closes inside, an open inside, or only trades inside: the three readings tested here gave 18, 23 and 27 qualifying days on the same 80 sessions, and other versions count one period or allow the next session.
Use the far edge as a target, not a promise. On 15 October it took until period L. On the nine sessions that did not get there, the value area edge the trade started from is the obvious place to be wrong.
When it fails
A trend leaves nothing to measure
In a one-way session every price gets visited about once. The letters spread into a tall, thin column, every row ties, and the point of control is whatever the tie rule says. On 30 October SPY traded from $761.46 down to $750.36; its busiest row held only 5 of the 13 periods and tied with another. That is a correct description of a market that never settled, and it gives you no level to trade.
The settings are choices
Thirty minutes is a convention from the trading pits, and 25-cent rows were our choice for a $760 fund. Use 15-minute letters or 10-cent rows and the counts, the ties and the point of control all move. A platform’s default is still a choice somebody made, the same way a brick size is on Renko charts.
Ties decide more than people think
With only 13 letters, several rows often share the top count. On 47 of the 80 SPY sessions they did, so two platforms with different tie rules can draw different points of control on the same day.
The vocabulary can outrun the measurement
Market profile comes with a large dictionary: single prints, poor highs, excess, rotation factor, a dozen day types. Each names a shape of one histogram. Naming shapes is useful, as with chart patterns, but a rich vocabulary is not a second source of information.
The finished profile looks more certain than the live one
At the moment price leaves the value area, a breakout and a return look the same. The point of control looks like a magnet only once the day is over; half of the 80% rule setups above reached the far edge and half did not.
Questions people ask
What is a TPO chart?
Another name for a market profile chart. TPO stands for time price opportunity: each letter is one 30-minute period that traded at that price.
What is the 80% rule in market profile?
If price opens outside the previous session’s value area and then holds back inside it for two consecutive 30-minute periods, the rule says it tends to cross to the far edge. On 80 SPY sessions in 2026 that happened 9 times out of 18.
Is market profile the same as volume profile?
No. Market profile counts time at each price and the volume profile counts shares or contracts. On SPY their busiest rows matched on only 16 of 80 sessions.
Can you give an example of a market profile?
SPY on 15 October 2026, drawn above: it opened at $766.25 under the prior value area, closed two half-hours inside it, and reached the far edge, $772.50, in the 3:00 p.m. period.
Related
The volume profile builds the same histogram from volume, and reading both on one day shows where the time and the trading parted ways.
The value area and the initial balance each have their own page with more on how traders use them.
Support and resistance is what a fat row looks like on a price chart.
And a trading range is the condition a profile needs before its levels mean much.
I treat this and the volume profile as one idea with two settings, and I lean on the volume one because volume is a harder number. Time at price is partly an artifact of how you chopped up the session, while volume is contracts that changed hands. The time version earns its place because it does not care about a single enormous print, so a quiet market that simply sat somewhere for hours shows up properly.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money. Some links on this page earn a commission if you buy through them. It costs you nothing and it does not decide what appears here or in what order — how these pages are made is set out in our methodology.