Market Profile is a charting methodology developed by J. Peter Steidlmayer at the Chicago Board of Trade in 1985 that organizes each session’s price and time data into a bell-curve histogram, revealing where the market spent the most time and therefore where it found fair value. Rather than OHLC candles, it displays Time Price Opportunity (TPO) letters — one letter per 30-minute bracket at every price traded — making it the primary framework for auction theory-based futures analysis.
Key Takeaways
- The Value Area (VAH to VAL) contains 70% of a session’s TPOs and acts as dynamic support/resistance the following day — an open inside value signals balanced conditions; an open outside value signals potential trend continuation.
- Profile shape classifies market context before the open: D-shape means trend day, b or p-shape means rotational day, giving traders a structural bias rather than a reactive guess.
- Single prints and poor highs/lows are failed auction signals — price typically returns to fill them, making them high-probability targets when approached from the opposite direction.
How Market Profile Works
Each 30-minute bracket in a trading session is assigned a sequential letter: A for the first bracket (9:30–10:00 ET), B for the second, and so on through M for the 13th bracket at the NYSE close. Every price traded during a bracket receives that letter in the profile column. The result is a horizontal histogram:
Price TPOs
5,301 G
5,300 FGH
5,299 EFGH
5,298 DEFGH ← Value Area High (VAH)
5,297 CDEFGHI
5,296 BCDEFGHIJ
5,295 ABCDEFGHIJ ← Point of Control (POC) — most TPOs
5,294 ABCDEFGHI
5,293 ABCDEFGH
5,292 BCDEFG ← Value Area Low (VAL)
5,291 CDEF
5,290 DE
5,289 D
The Point of Control (POC) is the price row with the most TPOs — the session’s fairest price. The Value Area spans from VAL to VAH and contains exactly 70% of the day’s TPOs, calculated by adding TPO counts outward from the POC until 70% is reached. This 70% threshold comes from the normal distribution assumption that underlies auction theory: markets spend most time near fair value.
The Initial Balance (IB) forms during brackets A and B (the first hour). It sets the day’s reference range — when subsequent brackets extend beyond the IB, that signals range extension and directional conviction.
Profile Shapes and Market Context
Profile shape is readable before the next open and defines the structural bias:
- D-shape (normal distribution): Balanced session, two-timeframe trade, rotational environment.
- Trend day (thin, elongated): One-timeframe trade; price moved away from value and never returned. High-momentum directional day.
- P-shape: Buying tail at the bottom with a wide value area at the top — short covering, bullish implication.
- b-shape: Selling tail at the top with a wide value area at the bottom — long liquidation, bearish implication.
Open Types
The relationship between the opening price and prior day’s value area defines the intraday playbook:
- Open-Drive: Price opens and immediately moves away from value with no pullback. Signals strong one-timeframe participation.
- Open-Test-Drive: Price opens, tests a key level (VAH/VAL/POC), then drives in the opposite direction.
- Open-Rejection-Reverse: Price opens outside value, is rejected, and rotates back inside — high-probability mean-reversion setup.
- Open-Auction: Price opens inside value and rotates — balanced conditions, wait for range extension attempts.
Practical Example
ES futures (S&P 500 e-mini): Prior day settled with POC at 5,285, VAH at 5,301, VAL at 5,268. The overnight Globex session traded between 5,278 and 5,295 — entirely inside prior value. At the 9:30 open, ES prints 5,290, inside both the prior value area and the overnight range. This is an Open-Auction condition.
Auction theory playbook: with price balanced inside value, the most likely outcome is rotation toward one of the value area boundaries. A trader waits passively for price to test VAH at 5,301. Price reaches 5,301 in bracket E and prints only 2 TPOs there — weak acceptance, suggesting responsive sellers are active. That stall is a responsive short setup: entry 5,301, target POC at 5,285, stop above 5,306 (a single print area from two sessions prior that has not yet been filled).
Risk: 5 handles at $50/handle = $250 per contract. Target: 16 handles = $800 per contract. Reward-to-risk = 3.2R — structured entirely from profile levels, no indicator required.
Market Profile assigns letters to 30-minute trading brackets and stacks them at each price, forming a histogram. The widest section marks the Value Area, where the market spent 70 percent of its time. Traders use these levels to identify fair value and spot high-probability setups at rejected prices.
Common Mistakes
- Confusing TPO POC with Volume POC. The TPO Point of Control marks maximum time at price; the volume profile VPOC marks maximum volume at price. On trending days these diverge significantly. Using one when the context calls for the other produces incorrect bias.
- Ignoring profile shape before the open. Treating every session as a two-timeframe rotation day misses trend days entirely. A quick profile-shape read before 9:30 sets the structural bias and prevents fading a genuine one-timeframe move.
- Treating single prints as automatic fills. Single prints act as magnets, but the approach matters. Price revisiting a single print from the value side tends to fill it cleanly; price approaching from outside value may extend further before filling. Entry timing near single prints requires confirmation of slowing momentum.
- Ignoring the Initial Balance range. Bracket C breaking above IB high or below IB low is a range-extension signal. Traders who miss IB often trade reactively instead of using the extension as a directional trigger.
How JournalPlus Tracks Market Profile
JournalPlus lets futures traders log the prior day’s VAH, VAL, POC, and IB range as pre-trade notes on each journal entry, then tag the open type and profile shape observed. Over time, the pattern analysis dashboard surfaces which open types produce the highest win rates and R-multiples in your own trading history — turning Steidlmayer’s framework into personalized, data-backed edge rather than theory.