Market profile vs volume profile: time, volume and data
Market profile counts time blocks that visit a price row. Volume profile sums volume assigned to that row. A price visited repeatedly can have the highest TPO count while a different price carries the most volume.
Short answer
Use TPO to study the sequence and frequency of price visits; use volume profile to study the distribution of measured activity. Compare identical sessions and price bins before interpreting a disagreement. Neither profile alone establishes a trade or predicts the next move.
TPO input
One count per visited row per time block
Volume input
Available volume allocated by price
POC
Largest row under each measure
Value area
A percentage of counts or volume
Same session, same bins, different POCs
Illustrative data, not a market record: five 30-minute blocks A to E cover 09:30 to 12:00 in exchange time. Rows are one price unit wide, with the lower bound included and the upper bound excluded. Volume is a supplied contract count for each row.
| Price bin | TPO letters and count | Volume in contracts |
|---|---|---|
| 100 to below 101 | A B = 2 | 3,000 |
| 101 to below 102 | A B C = 3 | 4,000: volume POC |
| 102 to below 103 | B C D E = 4: TPO POC | 2,000 |
| 103 to below 104 | D = 1 | 1,000 |
| Total | 10 TPOs | 10,000 contracts |
| 70% target | 7 TPOs | 7,000 contracts |
| Value-area rows | 101 to below 103: 3 + 4 = 7 | 100 to below 102: 3,000 + 4,000 = 7,000 |
A repeatable chart workflow
- 1
Freeze the comparison window
Write the exchange, symbol, timezone, date and exact start/end times. Choose regular hours or a session including overnight trading before collecting either profile.
- 2
Align the price bins
Match row width and row boundaries, not just the number of rows. Save the TPO block size, volume source and value-area percentage with the chart.
- 3
Audit the two measurements
Reconcile total TPO counts and total volume separately. Investigate missing bars, missing volume or a different feed before treating separated POCs as market evidence.
- 4
Evaluate only later observations
Save completed-profile levels and evaluate subsequent closed bars. Define whether a rule uses a row midpoint or an edge; do not replace a developing historical level with its final value.
Notes from chart review
- In the example, repeated visits to the 102 row produce four TPOs but only 2,000 contracts. The 101 row has fewer visits and twice the volume. Both measurements can be correct.
- Combining the two middle bins produces five distinct TPOs (A to E), not seven, and 6,000 contracts. That wider bin becomes both POCs. TPOs must be deduplicated within each block when bins are merged.
- Removing block A removes two TPOs from the displayed counts, but its volume cannot be recovered from the row totals alone. Rebuilding a shorter session requires the underlying time-resolved data.
Read the count before interpreting acceptance
One TPO means a row was visited during one block. Ten visits inside that same block still contribute one TPO to the row. A brief touch and a long stay can therefore receive the same count; TPO is not a stopwatch or a count of transactions.
The example has five time blocks but ten TPOs because a block can visit several rows. Calling the 102 row accepted is an interpretation of its repeated visits, not a fact about how many buyers held positions there.
Calculate POC and value area in the right units
TPO POC is the row with the most TPOs; volume POC has the most volume. The example uses the entire POC bin as the level. If a chart plots a single line, check whether it represents a midpoint, boundary or another convention.
For the TPO value area, start with four at the 102 row. Its neighbors contain three and one; add the three at 101 to reach seven. For volume, start with 4,000 at 101. Its neighbors contain 3,000 and 2,000; add 3,000 at 100 to reach 7,000. The TPO area spans 101 to below 103, while the volume area spans 100 to below 102.
These numbers hit 70% exactly and avoid ties. Real rows rarely do. Record the algorithm for ties and target overshoot as well as the percentage. TradingView documents different stopping instructions for TPO and volume value areas; identical percentage settings do not guarantee identical coverage.
Check what TradingView is actually displaying
TradingView offers native TPO as a chart type and indicator. The TPO indicator can show an accompanying volume profile, calculated using its block-size timeframe. That makes a paired display convenient, but changing block size can change both measurements.
Standard TradingView volume profiles use lower-timeframe data. Their up/down split is based on bar price direction, rather than observed aggressor-side executions. Stock trade volume, forex tick volume and crypto base or quote volume have different units. Verify the selected symbol and feed before comparing totals.
A footprint distributes volume within individual bars; a session profile aggregates across a chosen session. Keep those windows distinct. Reconcile a chart snapshot, its settings and its data coverage before comparing levels from another indicator.
What Pine can access, and what still needs an input
Pine now provides request.footprint() on Premium and Ultimate plans. It can return per-bar footprint rows, volume, delta and POC/value-area data, or na when data is unavailable. The Pine manual describes buy/sell categorization from lower-timeframe price action; these labels alone do not establish exchange bid/ask aggressor records.
A footprint request does not import the native TPO letters or your manually merged TPO profiles. For a rule based on those chart levels, enter the completed levels manually unless you have separately implemented and reconciled a TPO calculation. A custom OHLCV approximation must disclose how it allocates volume across prices.
Pineify AI Coding Agent can help write and revise the rule from those declared inputs. It cannot supply a missing exchange feed or make a proxy equal to the native chart. Check the generated source, syntax and chart output before relying on it.
Turn disagreement into a falsifiable rule
For the example, a descriptive rule could flag the first later bar closing above 103 after the comparison window ends. That threshold is the top edge of the higher POC bin, so it is explicit and can be checked by hand. It is not evidence of a profitable entry.
Before testing a trading strategy, specify the session, entry timing, exit, costs and position sizing. Retain cases where price crosses both profiles and then reverses. Discarding them would test the selection process instead of the rule.
A prompt for testing saved profile levels
Use this specification with Pine Script AI Coding Agent after checking the native charts. It uses manual levels so the script does not silently invent a source of TPO or volume data.
Create a Pine Script v6 indicator with manual numeric inputs for the upper and lower edges of prior completed TPO and volume POC rows, plus a timestamp when those levels became available. Validate that each upper edge exceeds its lower edge. Plot the supplied rows only from that timestamp onward. Flag a confirmed bar crossing above the higher upper edge, with the previous close at or below it, and create a matching alert condition. Do not evaluate earlier bars or calculate trade performance. Label all levels as manual inputs. Explain how to update them for the next completed session. Check the final syntax and compare the output with the supplied levels.Write the rule with AI Coding Agent
Continue the volume analysis
Tools for the next check
Volume Profile Calculator
Calculate Volume Profile with Point of Control (POC) and Value Area (VAH/VAL). Identify key support and resistance levels from volume distribution for market profile analysis.
Volume Profile Analyzer
Analyze volume distribution at price levels. Calculate Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL) from your trading data.
Order Flow Volume Profile
Separate historical volume-at-price structure from live order-flow evidence, data proxies, and bid/ask confirmation.
Fixed Range Volume Profile
Set reproducible range anchors, read POC and value-area levels, and turn a fixed range volume profile observation into a testable rule.
Order Flow Imbalance Calculator
Calculate order flow imbalance (OFI) to identify buying and selling pressure. Analyze bid/ask volume data, spot institutional activity, and understand market dynamics.
Sources and calculation notes
Frequently asked questions
Educational comparison, not investment advice. The numerical example is synthetic and is not a backtest. Profiles depend on the feed, window and calculation settings; neither counts nor volume guarantee a future price reaction or return.