Liquidity Signals: Heat, Absorption, Icebergs, and Spoofs
MattDOM's liquidity signals explain both what kind of resting liquidity is present and what happened when traders interacted with it. Persistent Liquidity Heat describes the book before the fight, Absorption and Iceberg markers identify levels that held or reloaded under attack, and Spoof markers identify unusually large quotes that were pulled intact after a short appearance.
1. Why liquidity signals matter
A normal depth ladder answers one question: how much size is visible now? That snapshot leaves out the history that often makes the size useful.
Two levels can each display 100 BTC while representing very different conditions:
- One appeared a fraction of a second ago and may disappear just as quickly.
- One has remained for 45 seconds, traded repeatedly, and replenished after every attack.
MattDOM tracks the lifecycle of visible liquidity so you can distinguish fresh quotes from sticky or actively defended liquidity. It compares aggressive trades with resting size to detect absorption and repeated replenishment, and examines short-lived pull behavior for possible spoofing.
| Signal | Question it answers |
|---|---|
| Persistent Liquidity Heat | How established or actively defended is this resting level? |
| Absorption Marker | Did passive liquidity hold while aggressive volume traded into it? |
| Iceberg Marker | Did the displayed level repeatedly reload while it was being traded? |
| Spoof Marker | Did an unusually large, short-lived quote disappear mostly intact with little execution? |
No signal predicts the future by itself. They organize live evidence so you can judge whether a level is likely being defended, weakening, or preparing to break.
2. Open the Liquidity Signals controls
Select SIGNALS in the MattDOM toolbar. The panel contains:
- HEAT MODE — Off, Age, or Defense
- MIN HEAT — hides heat coloring below the selected score
- ABSORPTION — enables or disables detection and markers
- ICEBERG — enables repeated-replenishment detection; off by default
- SPOOF — enables selective short-lived pull detection; off by default
- MIN SCORE — minimum absorbed-volume ratio required for a marker
- MARKER LIFE — 8, 12, or 20 seconds
- STRONG AUDIO — plays a distinct cue for very strong absorption when MattDOM sound is enabled
Your choices are saved in the browser and restored the next time you open MattDOM.
Press H while the ladder is focused to flash every current level with heat of at least 0.60. This is useful when the book is dense and you want to locate established levels immediately.
3. Persistent Liquidity Heat
Heat changes the color and intensity of each market-depth bar. Bar width still represents current displayed size; heat represents the character and history of that size.
The heat color scale
| Heat | Color | General interpretation |
|---|---|---|
0.00–0.25 |
Deep teal to cyan | Fresh or lightly established liquidity |
0.25–0.55 |
Cyan to purple | Developing persistence |
0.55–0.80 |
Purple to magenta | Established or repeatedly refreshed liquidity |
0.80–1.00 |
Magenta to electric yellow | Very sticky or strongly defended liquidity |
Color is continuous between these ranges. A hot color does not mean the level is large; a long bar does not mean the level is old. Read width and color together.
What MattDOM tracks
For each meaningful active bid and ask, MattDOM maintains:
- Time first seen
- Time last seen and last changed
- Current size
- Peak observed size
- Meaningful refresh count
- Aggressive volume traded against the level
- Whether the level disappeared without enough trading to explain the removal
- A short disappearance history for quick reappearance
Small fluctuations are treated as quote noise rather than refreshes. The meaningful-size threshold adapts to the visible book instead of using one fixed quantity across every asset.
New, pulled, and reappearing liquidity
When meaningful size appears, its lifecycle begins with a new first-seen time. If it vanishes, MattDOM remembers it briefly:
- Reappearance within approximately two seconds is treated as a refresh of the same level.
- Reappearance after that interval begins a new lifecycle.
- Dropped levels are pruned from memory after approximately 15 seconds.
This distinction helps separate a fast quote replacement from liquidity that genuinely left the book and later returned.
4. Age Heat mode
Age is the default and simplest mode. It measures how long meaningful liquidity has remained at a price:
age heat = clamp(level age / 60 seconds, 0, 1)
A newly established level begins cool. It becomes progressively hotter and reaches maximum age heat after about 60 seconds.
When to use Age Heat
Age Heat is best when you want an uncluttered answer to: Which levels have actually stayed?
Useful applications include:
- Locating stable intraday support and resistance close to price
- Separating established liquidity from sudden quote flashes
- Watching whether a long-lived level pulls before price arrives
- Comparing the longevity of the nearest bid and ask shelves
What Age Heat does not tell you
Age alone does not prove a market maker is defending the level. A quote can remain untouched for a long time simply because price never approached it. Check recent prints, distance from price, and the level's response when tested.
5. Defense Heat mode
Defense combines persistence, replenishment, and retained size:
defense heat = 0.4 × age + 0.4 × refreshes + 0.2 × retention
retention = current size / peak size
The components are normalized from 0 to 1. Age saturates near 60 seconds, while refresh heat saturates after approximately six meaningful refreshes.
Reading the components
- Age rewards time in the book.
- Refreshes reward meaningful increases and rapid replacement after disappearance.
- Retention rewards levels that still hold a large share of their peak displayed size.
A thin bright line on the outer edge of a depth bar identifies unusually high refresh activity. It can reveal active defense even when the bar's current size is no longer the largest on screen.
When to use Defense Heat
Defense Heat is most useful near an active test:
- Price approaches a known liquidity shelf.
- Aggressive trades begin hitting it.
- Displayed size decreases and then reloads.
- Price fails to continue through the level.
Because retention contributes to the score, a repeatedly refreshed level can cool if most of its peak size disappears and does not return.
6. Grouping and heat
MattDOM tracks liquidity at received price levels, then combines it for the ladder grouping you selected.
Phase Signals
The PHASE SIGNALS section contains three independent overlays. They can be enabled together or in any combination:
- ANALOGS compares the current pressure/rotation/volatility trajectory with
earlier trajectories collected in the open MattDOM session. It reports the median 1, 5, and 15 second move in basis points. COLLECTING means there is not yet enough prior trajectory plus known forward outcome; it is not a neutral forecast.
- REGIME SHADING draws subtle stable, directional, transitional, and
unstable bands behind the tick chart.
- REGIME HEAT conditions liquidity heat on pressure alignment, pressure
rotation, and volatility expansion. It can operate when the ordinary heat selector is off and reports STABLE, SUPPORTED, TESTED, or BREAK RISK in the row tooltip.
The analog readout remains visible in a compact overlay on the DOM after the Signals panel closes.
Phase signals describe observed microstructure and historical similarity. They do not prove future direction. Analogs are deliberately cleared when the symbol changes or the page reloads, preventing one market's history from contaminating another market.
When several tracked prices fall into one displayed row:
- Their current sizes are added.
- Row heat is weighted by current size.
- The hottest contributing level is retained for inspection.
- Refresh count shows the highest refresh activity among the contributing levels.
Use lower grouping for execution detail and higher grouping for broader shelves. Changing grouping can change the heat shown on a row because a different collection of prices is being combined; it does not rewrite the underlying liquidity history.
7. Absorption Markers
Absorption occurs when aggressive orders trade into passive liquidity but price does not make sustained progress through the level.
MattDOM attributes:
- Market sells to resting bids at the execution price
- Market buys to resting asks at the execution price
The detector uses a short window of approximately three seconds. It looks for meaningful resting size, sufficient aggressive volume, and liquidity that remains or refreshes after the attack.
Absorption score
absorption score = aggressive volume / resting size at attack start
| Score | Interpretation |
|---|---|
Below 0.70 |
Usually not enough evidence at the default setting |
0.70–1.49 |
Strong absorption if the level remains defended |
1.50+ |
Very strong: more than 1.5 times the starting size traded while liquidity remained or refreshed |
The score can exceed 1.0 because passive size may replenish while aggressive orders continue trading into it.
Glyphs and history
A confirmed absorption appears as a bright diamond beside its ladder price. Bid and ask events use slightly different gold/lime treatments so they remain visible against the heat palette.
The same event appears on the left tick chart as a short horizontal mark and diamond at the event price and approximate event time. MattDOM keeps up to the five most recent active events. Markers fade according to the selected lifetime.
Hover the event's price row to inspect:
- Absorbed volume
- Absorption score
- Attack duration
- Side of the defended liquidity
- Remaining resting size
Bid versus ask absorption
Bid absorption means aggressive sellers hit a resting bid and the bid held. This can support a bullish reaction, but it can also be temporary support before another attack.
Ask absorption means aggressive buyers lifted a resting ask and the ask held. This can support a bearish reaction, but it can also be temporary resistance before buyers finally break through.
Always wait for price behavior to confirm what the absorption means in context.
8. Iceberg Detection
An iceberg order hides most of its quantity and exposes smaller slices as executions occur. MattDOM cannot see hidden exchange quantity directly, so it detects the visible behavior associated with an iceberg: a meaningful level is attacked, loses displayed size, and repeatedly reloads.
Within the same approximately three-second attack window, the default detector requires:
- Enough aggressive volume to meet the selected absorption score
- At least two meaningful reloads after the attack begins
- Total replenishment of at least half the displayed size present at attack start
- Resting liquidity that remains defended
A confirmed iceberg appears as a cyan square. Its tooltip reports replenished quantity, reload count, and the traded-volume ratio. Because iceberg detection builds on absorption tracking, the same interaction can produce both an iceberg square and an absorption diamond.
Reading an iceberg marker
- A bid iceberg suggests passive buyers repeatedly reloaded while market sells hit the bid.
- An ask iceberg suggests passive sellers repeatedly reloaded while market buys lifted the ask.
- More reloads and replenished quantity are stronger evidence of hidden-liquidity behavior, but do not reveal the true remaining order size.
- The level can still fail after the marker. Confirm that it remains present and that price continues to stall or reject.
Do not confuse this signal with MattDOM's Iceberg execution tool. The signal observes market data; the execution tool splits your own order into slices.
9. Spoof Detection
Spoofing generally involves displaying liquidity intended to influence other participants and canceling it before meaningful execution. Market data cannot prove intent, so MattDOM's SPOOF label means “possible spoof-like pull,” not a legal conclusion.
The detector is deliberately selective. A level must:
- Be at least
3×the median visible-book size when its lifecycle begins - Remain visible for at least three book observations and approximately
0.30seconds - Disappear within approximately
2.5seconds - Remain absent for at least
0.20seconds, preventing a transient feed gap from triggering a marker - Trade no more than about
10%of its peak displayed size - Retain at least
65%of its peak size immediately before being pulled - Be inside the received depth snapshot rather than at its outer boundary
A confirmed possible spoof appears as a red triangle. The tooltip shows peak resting size, its multiple of the adaptive baseline, and how long it remained visible.
These checks reject common false positives such as one-frame quotes, ordinary above-average levels, walls that gradually decay, quick cancel-and-replace updates, and levels that vanish only because the received book depth shifted.
Reading a spoof marker
- A bid spoof marker means a large bid was pulled with little observed selling into it.
- An ask spoof marker means a large ask was pulled with little observed buying into it.
- Look for whether price was approaching the quote, whether similar pulls repeat, and whether liquidity appeared on the opposite side.
- Never assume the detected participant's intent or trade from the marker alone. Feed gaps, venue aggregation, and unobserved executions can still imitate spoof-like behavior.
10. Hover diagnostics
Hover any active price row to see the normal price, bid, ask, and venue breakdown. When liquidity signals exist at that row, an additional tooltip shows:
- Heat mode and percentage
- Age
- Current size and peak size
- Refresh count
- Total aggressive volume traded against the level
- Absorbed volume, score, and duration for a recent event
- Iceberg replenished quantity and reload count
- Spoof resting size, baseline multiple, and visible duration
The tooltip is the fastest way to distinguish visually similar hot levels. For example, one may be hot because it is old while another is hot because it refreshed repeatedly under pressure.
11. Recommended setups
Clean structural view
Use this when learning the feature or scanning several markets:
- Heat mode: Age
- Minimum heat:
0.25 - Absorption minimum:
0.70 - Iceberg: Off until you specifically want reload markers
- Spoof: Off until you specifically want pull markers
- Marker life:
12S - Strong audio: Off
Active execution view
Use this when watching a level being tested:
- Heat mode: Defense
- Minimum heat:
0.40–0.55 - Absorption minimum:
0.70 - Iceberg: On
- Spoof: On when monitoring fast liquidity changes
- Marker life:
8Sor12S - Strong audio: On, if MattDOM sound is enabled
High-selectivity view
Use this when activity is fast and ordinary markers become distracting:
- Heat mode: Defense
- Minimum heat:
0.60 - Absorption minimum:
1.20–1.50 - Iceberg: On
- Spoof: On
- Marker life:
8S - Strong audio: On
Thresholds change visibility and confirmation selectivity; they do not make a setup universally more accurate. Adjust them for the asset, session, volatility, and visible depth.
12. Practical trading workflows
Workflow A: Test of a hot bid
- Identify a magenta or gold bid below price.
- Confirm it has meaningful size, age, or refresh activity in the tooltip.
- Watch aggressive sell prints reach the bid.
- Look for a bid absorption diamond while price holds or returns above the level.
- Judge the response: higher prints and retained bid size strengthen the case; another immediate test weakens it.
Workflow B: Test of a hot ask
- Identify a persistent ask above price.
- Watch whether buyers trade heavily at the ask without lifting through it.
- Use an ask absorption marker as evidence that passive sellers held the first attack.
- Confirm with lower subsequent trades, continued ask retention, or repeated failed pushes.
Workflow C: Possible breakout
- Find the hot level blocking price.
- Watch retention and refresh behavior as aggressive volume accumulates.
- Be cautious if the bar shortens, stops refreshing, or disappears.
- A clean trade-through with price acceptance beyond the level is different from absorption.
- Do not treat an old marker as proof the level still exists; check the current bar and tooltip.
Workflow D: Divergence between displayed and executed liquidity
- A large cool bar with no trades is only fresh displayed intent.
- A small hot bar with repeated traded-against volume may be more important than its width suggests.
- A hot level that pulls before contact is information about behavior, but not support or resistance you can still execute against.
- Heavy prints with no absorption marker may indicate price is progressing normally through available liquidity.
Workflow E: Reloading iceberg candidate
- Watch a meaningful bid or ask as aggressive trades reach it.
- Confirm that displayed size repeatedly reloads rather than merely remaining untouched.
- Inspect the cyan square for reload count, replenished quantity, and traded-volume ratio.
- Confirm with stalled price progress and continued liquidity retention.
- Treat a clean break through the level as evidence that the hidden-liquidity behavior has ended or been overwhelmed.
Workflow F: Possible spoof-like pull
- Note an unusually large, recently appeared wall near price.
- Avoid assuming it is executable support or resistance simply because it is visible.
- If a red triangle appears after it pulls, check whether little volume actually traded at that price.
- Look for repeated pulls, opposite-side stacking, and the subsequent price response.
- Treat the marker as behavioral context, never proof of intent.
13. Common mistakes
Treating gold heat as an automatic entry
Gold means persistent or defended liquidity according to the selected mode. It does not guarantee the level will hold the next attack.
Confusing absorption with exhaustion
Absorption describes passive liquidity taking the other side of aggressive flow. Exhaustion describes aggressive flow drying up. They can occur together, but they are not the same process.
Treating every reload as an iceberg
Ordinary market makers also replace displayed liquidity. MattDOM requires repeated, meaningful replenishment during an active attack, but the marker still describes observed behavior rather than proving a native hidden order type.
Treating a spoof marker as proof of manipulation
The detector cannot observe intent, participant identity, or every venue event. A red triangle identifies a large, short-lived, mostly intact pull with little observed execution. Use “possible spoof-like behavior” when describing it.
Ignoring a second attack
A level can absorb once and fail moments later. Recheck current size, retention, refreshes, and price response after every test.
Comparing raw size across unrelated assets
BTC, ETH, SOL, and smaller markets have different typical depth and trade sizes. MattDOM uses an adaptive meaningful-size threshold, but you should still interpret the signal relative to the asset and session.
Using excessive grouping for execution
A grouped row may combine several distinct prices. Reduce grouping when you need to know the precise execution level or which raw quote is refreshing.
Reading a stale or paused ladder
Never make a timing decision when FEED AGE is stale. PAUSE freezes presentation even though incoming data continues buffering; resume before acting.
14. Important limitations
- Liquidity tracking is session-local. Reloading the page or changing symbols starts a new history.
- MattDOM observes displayed liquidity, not hidden iceberg quantity or trader intent directly.
- Orders can be canceled faster than a human can react.
- Aggregated venues can update at different times and frequencies.
- Trade direction is inferred from the market-data feed and may not perfectly represent every matching-engine detail.
- A marker confirms conditions observed by the detector; it is not a buy or sell recommendation.
- Very fast trade-through can make a previously defended level irrelevant immediately after a marker appears.
- Brief feed gaps, asynchronous venue updates, and executions missing from the received tape can still affect iceberg and spoof classification.
The strongest use of these tools is comparative: current size versus peak size, displayed intent versus executed volume, the first attack versus later attacks, and one side of the book versus the other.
15. Liquidity signal checklist
Before acting on a hot level or absorption marker, ask:
- Is the feed live and current?
- Is this Age Heat or Defense Heat?
- Is the bar large, hot, or both?
- How many times has it refreshed?
- How much has traded against it compared with its starting size?
- Is meaningful size still present now?
- Did price actually hold, reject, or return?
- Is this the first attack or a weakening retest?
- Does the tick chart agree with the ladder?
- For an iceberg, did the level reload repeatedly while trades actually hit it?
- For a spoof, was the wall pulled mostly intact with little execution, and did the marker confirm rather than merely flash?
- Is the selected grouping precise enough for the decision?
Heat tells you what kind of liquidity is waiting. Absorption and iceberg markers describe how it behaved under attack. Spoof markers describe selective short-lived pull behavior. Price response tells you whether any of that information is still actionable.