Module 5 · Lesson 2 of 17 · Order flow and auction market theory · About 6 minutes
Volume Profile Explained: POC, Value Area, HVN, LVN
On this page
- What you will learn
- What is a volume profile?
- What are the main volume profile reference points?
- Volume profile diagram
- What do volume profile shapes describe?
- What is the difference between session and composite profiles?
- What is value migration?
- What are the limits of volume profile?
- What this does not tell you about a volume profile
- Method in Practice
- Check yourself
- Reflect on your own process
- Sources
Before you read: Auction Market Theory Basics: Balance, Value, Rotation
What you will learn
- How a volume profile turns a session into a sideways histogram of volume at each price.
- The main reference points: point of control, value area high and low, high- and low-volume nodes, and single prints.
- How profile shape and value migration describe a day, and what profiles cannot show.
This lesson covers the measurements. The ideas behind them (value, acceptance, rejection, balance) are in Auction Market Theory, and how profile shapes relate to day types is in opening types and day types.
What is a volume profile?
What would a chart look like if you turned it on its side and counted business at each price?
A volume profile groups reported volume by price row over a selected period. A long bar means more measured quantity in that row; a short bar means less. Neither bar length alone measures time spent, order of visits, trader identity or why transactions occurred.
The data source and allocation method matter. TradingView’s documented volume-profile method uses lower-timeframe bars; its up/down split is based on bar direction, not direct identification of every trade’s aggressor. A profile from a different feed, instrument, session or row size can differ. This statement concerns this profile method, not every footprint/data mode on the platform. Footprint is a registered trademark of its owner.
A TPO profile instead counts whether a price row was visited during each selected time block. One letter is one block containing a visit; it is not proof that price stayed there for that entire block. See TPO Profile Basics: Letters, Periods and Profile Shape.
What are the main volume profile reference points?
Which few prices summarize where a session did most of its business?
What is the point of control?
Point of control (POC). The single price with the most volume in the profile. It is the longest bar.
What is the value area?
A value area is a contiguous selected band around the POC, using a declared percentage and algorithm. 70% is a setting, not a confidence level, forecast probability or guarantee that exactly 70% can fit discrete rows.
Fictional discrete-level table: One row per 1 price point; volumes are contracts. Row labels themselves are the level/boundary convention in this exercise, not half-row edges.
| Price level | Volume (contracts) |
|---|---|
| 103 | 5 |
| 102 | 10 |
| 101 | 20 |
| 100 | 30 |
| 99 | 20 |
| 98 | 10 |
| 97 | 5 |
Total = 5+10+20+30+20+10+5 = 100 contracts. Unique POC = 100, with 30 contracts. Target = 0.70×100 = 70 contracts.
Chosen method: the TradingView help page’s current one-row neighbor algorithm, checked November 6 and again November 8, 2026. Start with the POC. Compare the immediately unselected row above the current band with the one below. Take the larger volume. For equal volume choose the candidate closer to the POC; if distance also ties, choose above. Attempt to add it, but stop if that addition would exceed the target. Otherwise expand that side, update the candidates, and repeat until the target is reached or the next selected candidate would overshoot. This is not a universal two-row-pair or “at least target” algorithm.
| Step | Candidates | Decision | Included volume | Band |
|---|---|---|---|---|
| Start | POC 100: 30 | Include POC | 30 | 100–100 |
| 1 | 101:20 versus 99:20 | Equal quantity/distance: above wins | 50 | 100–101 |
| 2 | 102:10 versus 99:20 | Include 99, the larger candidate | 70 | 99–101 |
| Stop | Target reached | No more rows | 70/100=70% | VAL=99; VAH=101 |
Overshoot counterexample using the same rows: Set target to 75%, or 75 contracts. The first two additions still produce 70. Next candidates 102 and 98 each have 10 contracts and equal distance; 102 wins the tie. Including it would make 80, above 75, so this documented method stops at 70, with the same VAL=99/VAH=101. An explicitly different “add until at least target” convention would instead include 102, reach 80%, and label VAH=102. That 5-contract overshoot is not the TradingView stopping rule just used.
A tied POC is a separate implementation question; this example deliberately has a unique POC. Do not apply the neighbor tie-break to a POC tie without checking that platform’s rule. Record feed, session, selected period, row increment, POC tie convention, VA percentage and algorithm before comparing profiles. For selecting a multi-session period, see Composite Profiles and Value Migration: Reading Several Sessions Together.
High- and low-volume nodes and single prints
An HVN is a local concentration of measured volume; an LVN is relatively little measured volume compared with neighboring rows. These describe the histogram. “Acceptance,” “rejection” or “quick passage” are interpretations requiring additional time/price evidence, not quantities encoded by a volume bar.
Fictional counterexample: Price 100 trades 900 contracts during one brief burst within one 30-minute TPO block. Price 101 trades 60 contracts in each of three different blocks, or 180 contracts total. The 100 row has five times the volume but only one visited block; the 101 row has three visited blocks. Neither block count supplies exact dwell minutes. Volume quantity and time-block count answer different questions.
A TPO single print is a row inside the profile, not at its high or low, present in only one selected time block (TradingView’s TPO help uses this non-extreme definition; one-letter rows at an extreme are usually called a tail). A thin volume row is not automatically a TPO single print, nor does it prove one uninterrupted directional move. Inspect the time sequence when chronology matters.
Volume profile diagram
Read the diagram step by step
- Fictional discrete levels. Volume quantity, not time or trader intent.
- Selected rows: 99 / 100 / 101. One row per 1 price point; level labels are the boundary convention here.
- Equal volume and distance: above wins. Add 101 → included 50; band 100–101.
- Add larger 99 → included 70. Stop: target reached. VAL = 99; VAH = 101.
- target 75 → included 70
- Next: 102:10 versus 98:10. Equal volume/distance: select 102. Next 10 rejected.
- 70 + 10 = 80 > 75: stop BEFORE adding. Included 70/100 = 70%, not 75%. VAL = 99; VAH = 101.
- DIFFERENT stopping convention
- Add until at least target 75: include 102 → 80/100 = 80%. VAL = 99; VAH = 102. This is NOT the no-overshoot method above.
- 80 included; DIFFERENT rule
- 70% is not a confidence level or forecast. Neither HVN nor LVN measures time or intent.
- Invented rows. Education only. Not a trade recommendation.
Illustrative diagram constructed for teaching. Not real market data.
Invented rows reproduce the stated current one-row method; 70% is exact here at target 70, but target 75 underfills because adding the selected next row would overshoot. Neither HVN nor LVN measures time or intent.
What do volume profile shapes describe?
Can the outline of a histogram tell you how a session unfolded?
Shapes summarize where volume is concentrated, not the order in which prices traded.
- D/bell: heavier central rows and thinner ends; a distribution often described with balance terminology, not proof of repeated rotations.
- P: more volume in upper rows with a thinner lower tail. The histogram alone cannot establish whether lower prices traded first.
- b: more volume in lower rows with a thinner upper tail; same chronology limitation.
- Thin/elongated: relatively little volume per row across a larger price range; it does not by itself measure speed or prove a trend.
- Double distribution: two heavier regions separated by a lighter region. It does not reveal which region came first or whether price alternated between them.
Changing the order of transactions can leave exactly the same total-volume profile. A time chart or split time-block display is needed to distinguish those histories.
What is the difference between session and composite profiles?
What changes when you combine many sessions into one picture?
A session profile covers one trading session. A composite profile combines several sessions, for example a week or a month, into one histogram. Composite profiles show where volume accumulated over a longer period, which some traders use to see bigger areas of acceptance. The choice of start and end dates changes the result, so composite profiles are only as meaningful as the period you choose.
What is value migration?
If today’s busiest prices are above yesterday’s, what has changed?
Comparing the value area from one session to the next is called tracking value migration:
- Higher value: today’s value area sits above yesterday’s.
- Lower value: today’s value area sits below yesterday’s.
- Overlapping value: the two value areas overlap heavily. This describes balance.
A series of higher value areas is one way to describe an upward auction over several days. A series of overlapping value areas describes a balanced market that has found no reason to move during that period. These describe what has happened, not what comes next.
What are the limits of volume profile?
How many settings would two people need to agree on before their profiles match?
- Settings change the picture. Price increment per row, session definition, and the value area percentage all change the result.
- Futures contract months. A profile on a single contract month misses volume in other months, especially around the roll (see trading volume).
- Overnight versus day session. Including or excluding overnight trading gives different profiles for the same day.
- Hindsight. The session profile is only complete when the session ends. During the session, POC and value area can shift.
- Volume is not direction. A long bar shows lots of trading, not which side was more aggressive.
The futures profiles discussed here describe leveraged contracts. Leverage can cause losses larger than the amount invested.
What this does not tell you about a volume profile
POC/VAH/VAL are measured references, not barriers. The selected percentage is a convention and can underfill or overshoot under different algorithms. Shape describes the selected volume distribution, not transaction chronology, trader intent or what happens next. A developing profile can change; row/session/feed choices change its values. A volume profile and a TPO profile need not agree.
Method in Practice: acceptance or rejection at the edge of value
Fictional example. John, Harbor Index futures, the prices, times, costs and results are all invented for teaching. This shows how a written plan can be built and tested. It is not a recommendation, and nothing here says how often this idea works.
Try it on a real chart. Test this idea yourself on past sessions with bar replay. Keep your own count, including the days with no trade.
The idea. When price opens outside yesterday's value area and comes back in, traders watch whether it stays in (acceptance) or gets pushed back out (rejection). The "80% rule" name is folklore, not a measured rate.
John's plan
- Setup
- opened below yesterday's value area (low 101.20 · middle 101.80 · high 102.40)
- Enter if
- two 30-minute closes in a row back above 101.20
- Wrong if
- a 30-minute close back below 101.20
- Manage
- take half at 101.80, the rest at 102.40 or by 14:30
- Risk
- $150 maximum, costs included
Three outcomes
-
Worked: first level hit, second missed by 0.05 → +$75
-
Failed: back below the line 30 minutes after entry → −$104, inside the limit
-
No trade: only one close above, so the plan says wait → $0
Show the full replays
John's full plan, written before the open:
| Item | Plan |
|---|---|
| Prior session | Value area high 102.40, point of control 101.80, value area low 101.20 |
| Context | Today opened at 100.70, below the prior value area |
| Entry condition | Two 30-minute periods in a row close above 101.20. Enter at market after the second close |
| Wrong if | Any 30-minute period closes back below 101.20 after entry. Exit at market after that close |
| Management | At 101.80, take profit on half with a limit order and move the exit for the rest to the entry price (stop order). Take profit on the rest at 102.40 with a limit order. Time limit: exit whatever is left at 14:30 CT |
| Risk cap and size | No more than $150 lost on this idea, costs included. Exiting just under 101.20 is planned to cost about $50 per contract, so 2 contracts leaves room for a weak close (position size calculator) |
| Not trading if | A scheduled major release is due in the next hour, the open is more than 1 point below 101.20, or price never meets the entry condition by 12:00 CT |
Replay A: where it worked
| Time (CT) | What happened | John |
|---|---|---|
| 08:30–09:00 | Opens 100.70, trades 100.55–100.95, closes 100.90 | Waits |
| 09:00–09:30 | Crosses 101.20, closes the period at 101.35 | First close above |
| 09:30–10:00 | Holds 101.25–101.60, closes 101.50 | Second close above: buys 2 at market, filled 101.55 |
| 10:00–11:40 | Drifts up, trades 101.80 at 11:40 | Sells 1 at 101.80 (limit). Exit for the other moves to 101.55 |
| 11:40–14:30 | Reaches 102.35, never 102.40, never back to 101.55 | At 14:30 sells the last 1 at market: price 102.20, filled 102.15 |
Result after costs: contract 1, +0.25 point = +$25. Contract 2, +0.60 point = +$60. Commissions −$10. Net +$75.
John's journal entry: "Followed the plan. The second reference missed by 0.05 and the time limit closed it. I'm not changing the target after one session. Logging it for the weekly review."
Replay B: where it failed
| Time (CT) | What happened | John |
|---|---|---|
| 08:30–09:00 | Opens 100.70, crosses 101.20 at 08:50, closes 101.28 | First close above |
| 09:00–09:30 | Holds 101.22–101.40, closes 101.32 | Second close above: buys 2 at market, filled 101.37 |
| 09:30–10:00 | Stalls at 101.45, sells off, closes 100.95 | Wrong-if met: sells 2 at market, filled 100.90 |
| 10:00–15:00 | Falls to 100.10. The session builds value below yesterday's | Done for the idea |
Result after costs: 2 × −0.47 point = −$94. Commissions −$10. Net −$104, inside the $150 cap.
John's journal entry: "Entry and exit both followed the plan. The close came well below 101.20, so the loss was bigger than the $50-per-contract estimate. The cap held. No rule change from one loss."
Replay C: no trade
| Time (CT) | What happened | John |
|---|---|---|
| 08:30–09:00 | Opens 100.70, closes 100.85 | Waits |
| 09:00–09:30 | Crosses 101.20, closes 101.26 | First close above |
| 09:30–10:00 | Slips back, closes 101.12 | Condition not met (the two closes above were not in a row). No trade |
| 10:00–12:00 | Chops 100.80–101.30 with no two closes in a row above 101.20 | 12:00 cutoff: done for the day |
Result: $0.
John's journal entry: "No trade. The condition never happened. A day without the setup is part of the plan."
Test it yourself
- Write the exact rule first, then replay 50+ sessions that opened outside value (Bar Replay for Practice: Uses and Limits).
- Log every case that met the rule, plus the no-trade days, with your real costs (Why Chart Patterns Fail: Base Rates, Hindsight and Context, expectancy calculator).
- Change one setting (70% → 68%, volume → TPO). If the result flips, it's fragile (Overfitting and Repainting: When Indicator Results Look Too Good).
Where it breaks
- After big news, a large gap or a holiday, yesterday's value may not matter.
- Value areas differ by platform and setting.
- A close-based exit can fill well past the line (the failed replay). Size for that.
Calculators: position sizerisk/rewardexpectancy
Reflection question: Which line in your own plan tells you that you are wrong, and did you write it before or after the session started?
Check yourself
Reflect on these; there is no score.
- Reproduce the 70% band. Which tie is resolved first?
- At target 75, why is the checked method’s result not 80?
- Which fictional row has more volume, and which has more visited time blocks?
- Three completed sessions have heavily overlapping volume-profile value areas using the same period, row and value-area conventions. How would you describe the period, and what would you not infer? Hint: balance.
Trademark note. Market Profile is a name associated with the Chicago Board of Trade (CBOT), now part of CME Group. CBOT and Chicago Board of Trade are trademarks of Board of Trade of the City of Chicago, Inc. Socratic Trading Academy is not affiliated with, sponsored by or endorsed by CME Group or CBOT.
Reflect on your own process
- Which row size, session, value-area percentage and algorithm does your journal record before you compare two profiles?
- When your notes call a level "accepted" or "rejected", what evidence beyond the volume bar do you write down?
- How would you check whether your platform's value area stops before or after the target percentage?
- Which line in your own plan tells you that you are wrong, and did you write it before or after the session started?