Senzoukria · Indicators

Passive Absorption Indicator: Formula, Settings and How to Read It

Passive Absorption reports how many contracts printed for each tick that trades actually moved through inside a bar. It divides the total volume of the bar's price levels by the distance, in tick indices, between the highest and the lowest level where trades printed.

Updated September 2026First published 17 September 2026

On this page
  1. What Passive Absorption measures
  2. The formula, as implemented
  3. How to read it
  4. Parameters and defaults
  5. What it does not show
  6. Related indicators
  7. This page in other languages
  8. Frequently asked questions

Passive Absorption — Tape & flow, in its own panel below the chart.

What Passive Absorption measures

Both sides of the ratio come from the same set of usable price levels: the numerator adds buy and sell volume across them, and the denominator is the difference between the highest and lowest tick index those levels occupy, computed as exact integer arithmetic with no price rounding. A large amount of volume for a small traversal means someone served that flow without giving ground, which is the operational definition of passive absorption — and it requires neither a threshold nor a decision about which side was absorbing. That is where it differs from the absorption score and absorption markers, which do attribute a side. It also differs from Effort vs Result, which divides the aggregated bar volume by the full high-to-low range including ticks where nothing printed.

The formula, as implemented

This is not how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:

Indice d'absorption PASSIVE : value = Σ (buy + sell) des niveaux / (clé_max − clé_min) soit : contrats imprimés par TICK RÉELLEMENT TRAVERSÉ. Le dénominateur est une soustraction d'indices de tick — arithmétique ENTIÈRE exacte, aucun arrondi de prix. POURQUOI : beaucoup de volume pour peu de mouvement = quelqu'un a servi tout ce flux sans céder de terrain. C'est la définition opérationnelle de l'absorption passive, celle qui ne demande NI seuil NI arbitrage sur le côté (contrairement à `absorption-score`/`absorption-markers`, qui décident QUI absorbe) : ici on mesure seulement le coût en contrats du déplacement. Convention DISTINCTIVE vs `effort-vs-result` (tape.ts) : ce dernier divise `totalVolume` (agrégat backend) par `round((high−low)/tick)` — mèches comprises, y compris les ticks où RIEN n'a imprimé. Ici numérateur ET dénominateur viennent des MÊMES niveaux exploitables : volume réellement imprimé sur ticks réellement traversés par des prints. Les deux divergent exactement sur les barres à longue mèche, et c'est l'information. Range nul (tous les prints sur une seule clé — le rapport n'a pas de dénominateur), 0 niveau exploitable, ou tick size inconnu → PAS de point.

How to read it

  • When the line climbs, each tick of traversal is costing more contracts, the signature of resting liquidity meeting the aggression.
  • When it falls, price is covering ground for fewer contracts, which usually reflects a thinner book rather than stronger pressure.
  • Plot it alongside Effort vs Result: the two agree on compact bars and diverge exactly on bars with long wicks, because only this one restricts the denominator to ticks where trades printed.
  • Use the divergence as a question, not an answer: when this index stays high while Effort vs Result drops, the wick travelled through prices that never traded.
  • Look at the footprint itself before concluding absorption, since the index measures cost of movement and does not identify who was on the passive side.

Parameters and defaults

Only colour and post-smoothing are exposed. Smoothing defaults to 1, which plots the raw ratio; higher values average the series over that many bars, which makes trends easier to see at the cost of delaying every turn. There is deliberately no threshold parameter, because the indicator reports a cost and does not classify bars.

Passive Absorption — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
Smoothingnumber11 – 200

What it does not show

It never says who absorbed: the numerator merges buy and sell volume, so the same reading can come from buyers being served or from sellers being served. It requires per-level footprint data and the instrument's tick size, and it plots nothing when either is missing, when there are no usable levels, or when every print landed on a single tick and the ratio has no denominator. On very quiet bars the denominator is small, which produces large readings from little activity. The value also depends on how the data source aggregates prints: a coarser feed concentrates volume on fewer levels and changes both terms.

Browse all indicators

This page in other languages

Frequently asked questions

What is passive absorption in order flow?
Passive absorption describes resting liquidity taking the other side of aggressive orders without the price moving away. It is measured here by the number of contracts printed for each tick that price actually traded through: the more contracts needed per tick, the more the aggression was absorbed rather than displacing price.
How is Passive Absorption different from Effort vs Result?
Effort vs Result divides the bar's aggregated volume by its full high-to-low range in ticks, so the denominator includes ticks spanned only by a wick, where nothing traded. Passive Absorption takes both numerator and denominator from the same set of price levels, so it counts only volume that printed over ticks that were actually traded through. The two match on compact bars and diverge on wick-heavy ones.
Does the index say which side absorbed?
No. Buy and sell volume are added together in the numerator, so an identical reading can come from sellers being served by resting bids or from buyers being served by resting offers. The absorption score and the absorption markers are the indicators that attribute a side; this one deliberately does not, which is also why it needs no threshold to be set.
NEXT

Keep reading