The optimal TPO size is the price height of each TPO block that lets a market profile show finer details such as single prints and poor highs without making the profile too tall to read. As a rule of thumb, pick a TPO size that splits the typical daily range into roughly 100 to 200 rows, then divide it by the tick size to get the value your software expects. For Nifty futures that is usually 1 point, keyed in as 10 now that the tick is 0.10.
- TPO size depends on tick size, volatility and price level.
- Value to key in = TPO size / tick size (NinjaTrader, MultiCharts, MarketDelta).
- Since 15 April 2025 Nifty futures trade in 0.10 ticks and Bank Nifty futures in 0.20 ticks, so the old “20 for 1 point” setting has changed.
- Raise the TPO size on high-volatility days and lower it in quiet markets.
What is TPO size in market profile?
How to set the TPO size? The most asked question among the market profile beginners. TPO (Time Price Opportunity) is the basic building block of market profile. Multiple TPO blocks jointly form profile structure (profile distribution).
The main purpose of reading profile structure is to visualize and understand what kind of participation we dealt or dealing for the current day. Profile structures reveal whether day timeframe traders or short term traders or any long term behavior is going on.
Price distribution is completely independent of timeframe. Every day one gets a composite profile distribution. Regardless of what TPO size is used price distribution remains the same. However lower the TPO size one can get finer details about the market participants behavior. Higher the TPO size lower the amount of data one could get about the participants behavior.
It is always recommended to go with optimal TPO size settings because an ultra-low TPO size brings more data points (more letters) and tough to read/process by compressing the charts and expanding every time. It is time-consuming but reveals a lot of finer details about market behavior.
Too big a TPO size gives fewer details as it sometimes misses pieces of information like anomalies, single prints which are important pieces of information from an intraday traders/positional trader perspective.
Pick an instrument, enter the price and typical daily range, and get a TPO size, the value to key into your market profile tool and how many rows the profile will print.
TPO size follows the ATR table in this post. Tick sizes follow the NSE schedule effective 15 April 2025: index futures 0.05 up to 15,000, 0.10 from 15,000 to 30,000 and 0.20 above 30,000; stocks by price band. NSE revises these periodically, so confirm in your broker or charting software.
How to set the optimal TPO size
Following are the set of guidelines to set optimal TPO size,
How TPO Size is calculated in Market Profile Tool
TPO size and Tick size are inter related in most of the trading analysis tools like Ninjatrader 7, Ninjatrader 8, Multi charts, Market Delta.
Usually if the Tick size == 0.05 (minimal possible price moment specified by the exchange) then actual TPO size has to be divided with actual Tick values to get the TPO value keyed into the trading software.
For a Instrument like Nifty futures where tick size = 0.05 and if one have to set the TPO size of 1 point then 1.00/0.05 = 20 is the TPO Size one have to key in the market profile indicator settings.
2026 update on tick sizes: NSE revised tick sizes from 15 April 2025 (see our NSE tick size revision 2025 post). Index futures now use 0.05 up to an index level of 15,000, 0.10 from 15,000 to 30,000 and 0.20 above 30,000. With Nifty above 15,000 and Bank Nifty above 30,000, a 1 point TPO is keyed in as 1.00 / 0.10 = 10 for Nifty futures and 1.00 / 0.20 = 5 for Bank Nifty futures. Index options stay at 0.05. Stocks and stock futures use 0.01 below ₹250, 0.05 from ₹250 to ₹1,000, 0.10 from ₹1,000 to ₹5,000, 0.50 from ₹5,000 to ₹10,000, ₹1 from ₹10,000 to ₹20,000 and ₹5 above ₹20,000.
TPO Size settings in Ninjatrader 8

Choosing the optimal TPO size depends on three factors Tick Size, Volatility, Traded Price.
Optimal TPO size by price range
For a 0.05 Tick size instrument Here is the Optimal TPO Size which I prefer to read market generated information.
If you are a BellTPO Market Profile Ultimate user then the following method is recommended to get the automated reference line properly.
| Price Range | TPO size | Tick Size | NT8 TPO Value |
|---|---|---|---|
| Less than 100 | 5 paise | 0.05 | 1 |
| > 100 and < 250 | 10 paise | 0.05 | 2 |
| >250 and < 1000 | 25 paise | 0.05 | 5 |
| >1000 and < 5000 | 50 paise | 0.05 | 10 |
| >5000 and < 30000 | 1 rupee | 0.05 | 20 |
| Greater than 30000 | 5 rupee | 0.05 | 100 |
The table above assumes a 0.05 tick, as it was in 2019. If the stock now trades with a different tick, keep the TPO size column and recompute the NT8 value as TPO size / current tick. For example, a ₹1,500 stock with a 50 paise TPO and a 0.10 tick is keyed in as 5, not 10.
Instruments TPO size based on Volatility
| Trading Instrument | Tick size | Low volatility | High volatility |
|---|---|---|---|
| Nifty | 0.05 | TPO = 1 rupee NT8 Value =20 | TPO = 2 rupee NT8 Value = 40 |
| Bank Nifty | 0.05 | TPO = 1 rupee NT8 Value =20 | TPO = 2 rupee NT8 Value = 40 |
| MCX Crude Oil | 1 | TPO = 1 rupee NT8 Value =1 | TPO = 2 rupee NT8 Value = 2 |
| Es-Mini Futures | 0.25 | TPO = 0.25 cents NT8 Value = 1 | TPO = 0.50 NT8 Value = 2 |
| Trading instrument | Tick size (2026) | Low volatility | High volatility |
|---|---|---|---|
| Nifty futures | 0.10 | TPO = 1 rupee NT8 Value = 10 | TPO = 2 rupee NT8 Value = 20 |
| Bank Nifty futures | 0.20 | TPO = 1 rupee NT8 Value = 5 | TPO = 2 rupee NT8 Value = 10 |
Higher the volatility in the market one can also prefer higher TPO size as the trading range increases during the high volatile markets it is always preferred higher TPO size to read optimal profile information.
ATR based TPO size
One can also prefer ATR based TPO size for adapting to different market conditions.
| Daily ATR Range | TPO Size | Tick Size |
|---|---|---|
| Less than 5 | TPO = 0.05 paise NT8 Value = 1 | 0.05 |
| 5 - 25 | TPO = 0.10 paise NT8 Value = 2 | 0.05 |
| 25-50 | TPO = 0.25 paise NT8 Value = 5 | 0.05 |
| 50-100 | TPO = 0.50 paise NT8 Value = 10 | 0.05 |
| 100 - 150 | TPO = 1.00 rupee NT8 Value = 20 | 0.05 |
| 150 - 250 | TPO = 2.00 rupee NT8 Value = 40 | 0.05 |
| 250 - 500 | TPO = 5.00 rupee NT8 Value = 100 | 0.05 |
| 500 - 1000 | TPO = 10 NT8 Value = 200 | 0.05 |
TPO size can be fixed based on India VIX (Volatility Index). For example TPO size = 1 point in Nifty Futures if India VIX remains below 18 and TPO size = 2 or 3 if India VIX shoots above 18 levels.
Common TPO size mistakes
- Using an old tick size. Keying in 20 for Nifty futures with a 0.10 tick gives a 2 point TPO, not 1 point.
- One setting for every instrument. A ₹200 stock and Bank Nifty need very different TPO sizes.
- Never adjusting for volatility. On budget, RBI policy or election days the range expands sharply; a larger TPO keeps the profile readable.
- Comparing profiles built with different TPO sizes. Value area and POC shift slightly with TPO size, so keep it constant when comparing sessions.
New to profiles? Start with how to read a market profile chart and how to read market profile structures, and if you are choosing software, see how to get market profile and footprint profile charts. The full series is in our market profile tutorials.
Final thoughts on TPO size
I prefer to use Optimal TPO information for capturing max details about the market generated information. There is no thumb rule to set the TPO size for various instruments, if you find too much of information then one have to increase the TPO size or if you find too less of information from the profile distribution then one should reduce the TPO size. However the above mentioned practice helps one to read the most of the market generated information.
I hope this tutorial helps you to identify the optimal TPO size settings required to read maximum amount of market generated which a trader cannot afford to miss.
Frequently Asked Questions
What is the best TPO size for Nifty futures?
A 1 point TPO works for most normal sessions and 2 points on high-volatility days. With the 0.10 tick in force since April 2025, key in 10 and 20 respectively in tick-based tools.
How do I calculate the TPO value for NinjaTrader 8?
Divide the TPO size you want by the instrument tick size. For example, 1.00 / 0.10 = 10 for Nifty futures and 1.00 / 0.20 = 5 for Bank Nifty futures.
Does TPO size change the value area and POC?
Slightly. The price distribution is the same, but a coarser TPO groups prices into bigger rows, so the POC and value area edges can shift by a row.
Should TPO size change with India VIX?
Yes, as a simple filter: keep 1 point in Nifty futures while India VIX is below 18 and move to 2 or 3 points when it rises above 18.
Let me know in comments if you face any issues with TPO settings.
Learn by watching: free videos every week
Market Profile, order flow, Python, AI and OpenAlgo tutorials on YouTube.



In the above detailed explanation is nicely provided,
My observation
a better nomenclature for field on bell tpo should be read as “TPO Interval” instead of tpo size
Sir whats the tpo of forex pairs
TPO size mostly depends upon Tick Size. Mostly for Indian and International pairs TPO Size is 1 provided tick size is set properly.
sir i want orderflow settings for charts less than 500 rupees. thankyou