TPO (time price opportunity)

A TPO (time price opportunity) is the basic unit of a Market Profile: one mark, usually a letter, recorded for each price row that a time bracket traded at. Counting TPOs by price shows how long the market spent at each level, independently of volume.

Senzoukria · Glossary · Updated September 2026


How a TPO is recorded

Take a session and cut it into brackets of equal length, thirty minutes by convention. Give each bracket a letter: A for the first, B for the second and so on. For every price row the bracket traded at, write its letter in that row. Each letter is a TPO. Stack the letters to the left and you get the Market Profile; read the row with the most letters and you get the TPO point of control.

  • TPO counts measure time at price, not contracts at price. A row with five letters was visited during five brackets, whatever the volume.
  • The row height, the price increment of one letter, is a display choice; on a small-tick instrument several ticks are grouped in one row.
  • The anchor of bracket A depends on the period: a Chicago 17:00 session, an RTH open, or any custom period.

What TPO counts show

  • TPO POC: the row with the most letters, the price where the market spent the most time.
  • TPO value area: the rows around the POC that hold about 70% of all letters.
  • TPOs above versus below the POC: Dalton's count, a quick read of which side of the profile is heavier.
  • Single prints, tails and poor highs or lows are all read directly from the letter structure.

In Senzoukria

The 'Market Profile (TPO)' overlay draws Steidlmayer TPO profiles on the chart for a chosen period (15 minutes, 1 hour, 4 hours, 1 day, CME day, RTH, rolling 90 or 180 days, sessions, or custom). The 'Display' setting chooses 'TPO letters (A, B, C…)', 'TPO blocks' or 'Bars'; 'Bracket' sets the letter length with 30 minutes as the default; 'Row height' groups ticks per row; 'Split columns' keeps each bracket in its own column. 'Letter colors' can distinguish the value area, each bracket, the initial balance or fade with time, and 'Profile statistics' prints TPO total, range in ticks, value-area width and TPOs above / below the POC under each profile. The guided tour lists TPO among the indicators on the footprint screen.

Common mistakes

  • Choosing a bracket that is not a multiple of the chart timeframe: a 4-hour bar cannot reconstruct 30-minute visits, so the profile falls back to coarser drawing.
  • Expecting the TPO POC and the volume POC to match; they are often close but built from different quantities.
  • Reading TPOs on a chart whose history is incomplete; the letters only describe the bars that were loaded.

This page in other languages

Frequently asked questions

What does a TPO count of 12 at a price mean?
It means twelve brackets traded at that price row during the period. With 30-minute brackets that is six hours of the session touching the row, not necessarily continuously. It says nothing directly about how many contracts traded there.
Why use TPOs when volume profiles exist?
Time and volume answer different questions. A volume profile shows where contracts changed hands; a TPO profile shows where price spent time. A short burst of heavy volume shows in one and not the other. Many traders keep both, and Senzoukria draws both as separate overlays.
Can TPO profiles be built from candles only?
Yes. A TPO only needs the high and low of each bracket, so it can be reconstructed from OHLC bars as long as the bracket is at least as long as the bar. Bid/ask and delta readings, by contrast, need real price-level data.

Keep reading