TPO — Time Price Opportunity
Per-session Market Profile — TPO letter brackets and volume profile side-by-side, with POC, value area, initial balance, single prints, and shape.
TPO (Time Price Opportunity) is the classic Market Profile read — instead of measuring how much volume trades at each price, it counts how much time price spent there. Each session is broken into fixed-length sub-bars; every sub-bar is a "letter-of-period" (A, B, C, …) stacked horizontally so the row's letter count is the row's time-at-price. The profile that emerges has a shape, and the shape carries the same auction-theory meaning Steidlmayer / Dalton wrote about decades ago: a balanced bell is rotation, a top-heavy P is short covering, a bottom-heavy b is long liquidation, twin nodes are a trending day. The default view also paints a Volume Profile column next to the TPO cells so you read time-at-price and money-at-price in a single glance.

Settings reference
The dialog has three groups — TPO for what gets built, LVL for level overlays, META for the stats panel and signals.
| Section | Setting | Default | Notes |
|---|---|---|---|
| TPO · Market profile | Period | 1D | Session length — 15m · 30m · 1h · 4h · 1D · 3D · 1W · 1M. One profile is rebuilt per period across the loaded history. |
| Mode | TPO + Volume Profile | TPO + Volume Profile (canonical Sierra-style layout) · TPO only (letter cells, no VP column) · Volume Profile only (histogram, no letters). | |
| Profile type | Volume | Only visible when the active mode renders a Volume Profile column. Volume (total per row) · Bid × Ask (split bar — sells left, buys right; needs footprint data) · Delta (signed buy − sell bar, bull / bear coloured; needs footprint) · Trades (coming soon — falls back to Volume). | |
| Volume unit | Coin | Coin (base asset) or USD (notional). USD also reweights the profile shape — high-priced rows count more when the session spans a wide range. | |
| Profile text size | Large | Letters inside TPO cells and numbers inside VP bars — Tiny · Small · Normal · Large · X-Large. Independent of chrome size so you can shrink the chrome and keep the letters readable. | |
| Chrome text size | Normal | Stats box, level tags, POC / VA labels — Small · Normal · Large · X-Large. | |
| Profile brightness | 100 % | Slider 20 % – 200 %. Dims or saturates the TPO cells and VP bars without touching POC line, level tags, IB band or single-print dots. Drop it when you want the candles to read above a busy profile; raise it for a profile-driven view. | |
| LVL · Levels & markers | Price levels | On | Left-edge tags at the session's natural anchor: HoD · IBH · Open · Mid · Close · IBL · LoD — high / Initial Balance high / open / midpoint / close / Initial Balance low / low. |
| POC line | On | Gold horizontal extension drawn at the Point of Control of each session — the row with the most time-at-price. | |
| VA lines | On | Dashed bounds of the Value Area — the central band that contains roughly 70 % of the session's TPO time. The top edge is VAH, the bottom edge is VAL. | |
| Initial balance | On | Translucent band marking the first hour's range — the Initial Balance. Where initiative buyers and sellers reveal themselves before the bulk of the day's auction. | |
| Single prints | On | Highlight on rows touched by only one letter — "single prints". A thin gap in the profile that price tore through; usually acts as a launchpad on the next visit. | |
| META · Stats & signals | Stats box | On | Bottom-left of each session column. Three lines: range and IB range; total TPO count split into in-VA vs out-of-VA; total session volume and POC price. |
| Show numbers | On | Per-row labels inside TPO cells and VP bars. Off = silhouette only — useful on dense intraday charts. | |
| Buy / sell signals | On | Arrows placed at the bar that triggers a Market Profile rule against the previous session's levels (see below). One signal per session, locked once it fires. |
POC, Value Area, IB and shape detection are always computed from the TPO letter count — that's the canonical Market Profile definition. Switching Mode or Profile type only changes how the right-hand column is painted and which number lives inside each bar; the same POC sits at the same row in every mode.
How to read it
Read the profile shape first, then drop down to the specific levels.
Dshape (single fat node, rows thin out symmetrically above and below) — a balanced session. Mean-reversion is the high-probability play; fade extremes back toward POC. The next session usually re-tests this POC.Pshape (fat node high, thin tail low) — buyers ran the market up and then sat at the top. Often a short-covering rally rather than fresh initiative. Fade rallies on the next session unless the high is taken with conviction.bshape (fat node low, thin tail high) — long liquidation. Mirror ofP; fade dips up.Bshape (double distribution — two fat nodes separated by a thin zone) — a trending day with a midday rotation. The second distribution is usually the right side of the auction; bias continuation in the second distribution's direction.
Then read the levels the session left behind — they're the trade plan for the next session.
- Open vs Value — first bar of the new session opens above prior VAH = bullish bias; opens below prior VAL = bearish; opens inside prior VA = balance / mean-revert plan.
- Prior POC — the most-traded level of the prior session. Magnets the next session; bounce or reject reveals which side wants control.
- Prior VAH / VAL — outer edges of value. Holding above prior VAL on a dip is a BUY context; rejecting prior VAH on a rally is a SELL context.
- Poor highs / poor lows — flat finishes at the top or bottom of the session where the auction didn't taper. Magnetic; the next session typically revisits them. The signal arrows fade rallies into a poor high and hold dips into a poor low.
- Single prints — thin gaps you can see in the profile. Price moved fast through them. Treat the first revisit as a level: bounce on a single-print floor, reject on a single-print ceiling.
- Initial Balance break — first-hour range marked by the IB band. When a later bar closes outside it with momentum, the session usually extends in that direction (classic open-drive / range-extension setup).
The Buy / sell signals layer pre-applies this playbook for you — every arrow is anchored to the bar that triggered a rule against the prior session's levels, never to the still-forming current session. One signal per session, placed at the first qualifying bar so the marker stays where the trader could actually have acted.
Pair the read with confluence:
- VRVP — total volume at each level. A POC sitting on a VRVP high-volume node is much stronger than a POC on thin volume.
- CVD Profile — buy-vs-sell split at each level. A POC with near-zero net delta is a textbook absorption tell.
- Volume — bar magnitude. An IB break on heavy volume sticks; on thin volume it usually fades.
Common pitfalls
- Reading TPO on a 5m chart with a 1D period and 200 candles in view — the live session is still forming and most of what you see is one growing profile. Drop to a shorter Period (4h or 1h) on intraday charts, or pan back to read the completed prior session before trading the open of the current one.
- Trusting the live session's POC for level callouts — the current session's POC moves until the session closes. Quote the prior session's POC, VAH and VAL when you set up; the current session's profile is reference, not a fixed level.
- Treating TPO the same as VRVP — TPO counts time, VRVP counts volume. A level can have huge VRVP and small TPO if a few large sweeps did the work, or huge TPO and small VRVP if price hung at a quiet level. The two together are the strongest read; either alone misses half the picture.
- Reading classic auction shapes on 24/7 crypto without picking a period — Market Profile doctrine was written for session-based futures. On crypto, set Period to the cadence that matches the regional liquidity peak you trade (1D for the daily ritual, 4h or 1h for intraday auction reads) — leaving it on a mismatched period dilutes every shape into a long
D. - Crowding the chart with every level on — POC line + VA lines + IB + single prints + price-level tags + stats box is too much on a small screen. Start with POC + VA lines + Initial balance and turn the rest on only when you actively use them.
- Coin vs USD whiplash — switching Volume unit to USD re-shapes the Volume Profile column (high-priced rows weight more), not just the labels. Pick one and stay with it within a screenshot or callout — comparing a Coin profile to a USD profile across two charts will mislead you.
What's next
- VRVP — volume-only profile per session; the magnitude companion to TPO's time read.
- CVD Profile — buy-vs-sell split at each price level, per session.
- Volume — bar-by-bar magnitude; pair with IB breaks to filter weak extensions.