A structural flow and stock model for Bitcoin liquidity analysis. This document explains the math, the assumptions, and the reasoning behind every input in the calculator.
The model is a flow and stock depletion framework. It does not predict price directly. Instead it tracks the relationship between coins that are structurally removed from circulation and coins that remain available for sale on exchanges. When structural holders absorb more than exchanges can replenish, price must rise to coax sellers back in.
All refinements to the original model are additive. The core accounting identity is unchanged.
S_mined is circulating supply (~19.85M). S_satoshi (1.1M) and S_lost (3–5M) are treated as permanent removals. S_lost uses a slider because the true figure is unknowable — estimates range from 3M to 5M BTC.
H_strategy is Strategy's total confirmed holdings. H_strive separates Strive's confirmed holdings so SATA can be modelled without double-counting. H_other contains the remaining corporate treasuries. H_etf is total spot ETF holdings, multiplied by h_etf (the stickiness rate — the fraction unlikely to be redeemed).
The calculator exposes every meaningful variable as a slider. Treasury and ETF holdings load from live data where available; the SATA extension was added in August 2026.
| Input | Default | Range | Notes |
|---|---|---|---|
| S_mined | 19.85M | Fixed | Post-halving circulating supply |
| S_satoshi | 1.1M | Fixed | Permanently dormant, treated as lost |
| S_lost | 4.0M | 3.0–5.0M | Genuine uncertainty — use slider to stress test |
| H_strategy | Live (720k+) | Floor = live | Auto-fetched. Drag right to project future buys |
| H_strive | Live / 21,356 fallback | Confirmed | Separated from other corporates; 21 Aug 2026 SEC baseline |
| H_other | Live | 200–900k | CoinGecko corporates excluding Strategy and Strive |
| H_etf | 1.287M baseline | Adjustable | Maintained ETF reference; not a live CoinGecko feed |
| h_etf | 0.78 | 0.50–0.90 | Empirically supported — see Section 4 |
| CoX (Bull) | 1.80M | Manual | Glassnode tight definition |
| CoX (Base) | 2.10M | Manual | Midpoint estimate |
| CoX (Bear) | 2.70M | Manual | CryptoQuant broad definition |
| ΔH_year | 750k | 400k–1.1M | Base absorption rate, excluding preferred pipelines |
| STRC rate | 50k/yr | 0–200k | Additional annual capacity via STRC — feeds ΔH_year |
| SATA rate | 15k/yr | 0–75k | Neutral Strive accumulation scenario — not company guidance |
| ε | 0.005 | 0.001–0.015 | ColdFloat elasticity coefficient — see Section 5 |
| P_now | Live BTCUSD | Manual override | CoinGecko price with timestamp; cached fallback when unavailable |
The single most important methodological decision in this model is reporting R as a three-scenario band rather than a point estimate. This reflects genuine disagreement between data providers on what CoX actually is.
Glassnode clusters exchange wallets behaviorally. CryptoQuant uses a broader definition including some OTC desks. Neither is wrong — they measure slightly different things. With H_sink in the denominator, a 50% spread in CoX estimates produces a 50% spread in R.
| R Value | Regime | Interpretation |
|---|---|---|
| R < 0.50 | Normal | No structural stress on exchange float |
| 0.50 – 0.80 | Tightening | Structural sinks growing relative to float |
| 0.80 – 1.00 | Fragile | Float under meaningful pressure |
| R ≥ 1.00 | Shock Unlocked | Structural HODLers hold more than exchange float |
If all three CoX scenarios agree on a regime simultaneously, that is a high-conviction reading. If they straddle two regimes, treat it as transitional. Never rely on a single CoX source.
Current snapshot (March 2026) with H_sink ~1.64M BTC:
| CoX Scenario | CoX | R(t) | Regime |
|---|---|---|---|
| Bull (Glassnode tight) | 1.80M | 0.91 | Fragile |
| Base (midpoint) | 2.10M | 0.78 | Tightening |
| Bear (CryptoQuant broad) | 2.70M | 0.61 | Tightening |
The stickiness rate h_etf represents the fraction of ETF holdings unlikely to be redeemed — coins that are effectively as illiquid as HODLer wallets despite being technically redeemable.
The default of 0.78 is not an assumption. It is empirically supported by 26 months of observed ETF behaviour through January 2024 to March 2026, including three significant stress events:
| Stress Event | BTC Drawdown | ETF Redemption Response |
|---|---|---|
| April 2024 | ~35% | Modest outflows, recovered within weeks |
| August 2024 flash crash | ~30% in days | Brief outflows, correlated with Yen carry unwind |
| Oct 2025 ATH → current | ~50% | No sustained structural redemption wave |
This behavioural profile reflects the institutional nature of the ETF buyer base — wealth management platforms, pension-adjacent capital, and long-horizon allocators who entered via ETF precisely for passive exposure, not as a trading vehicle. A 50% BTC drawdown is painful but does not trigger forced liquidation mandates at these allocators.
The slider minimum of 0.50 represents a tail-risk scenario: a regulatory shock, major exchange collapse, or macro forced liquidation event. This is not a base case. The credible range for normal market conditions is 0.70–0.85.
Every prior Bitcoin cycle has been capped by the same mechanism: as price rises, dormant holders hit their threshold and sell back into exchanges. The model captures this with a price-responsive CoX refill term.
The ε coefficient is non-linear in reality — it accelerates as price moves further above prior cycle highs into price discovery territory. The slider default of 0.005 is a conservative midpoint based on observed cycle behaviour.
| Price Move Post R=1 | ε = 0.005 (default) | ε = 0.010 (high) |
|---|---|---|
| +25% | +150k BTC refill | +300k BTC refill |
| +50% | +300k BTC refill | +600k BTC refill |
| +100% | +600k BTC refill | +1.2M BTC refill |
When a scenario has R > 1, the calculator can invert the same refill relationship to estimate the price rise required to return CoX to H_sink and therefore restore R to exactly 1.0.
H_sink, S_eff and ε are held fixed during this snapshot. When R ≤ 1, no higher clearing price is shown. If the necessary refill exceeds the available ColdFloat, the scenario is marked insufficient rather than extrapolated. Results above +300% are displayed but flagged as extreme sensitivity outputs.
This is a model-implied clearing price, not a target, prediction or fair-value estimate. At R = 1.0, ShockScore returns to zero. Continued STRC, SATA, ETF or treasury absorption during the move would increase the required price.
The supply shock does not eliminate the price ceiling — it raises the price required to find one. ColdFloat still refills CoX eventually, but at progressively higher prices as H_sink grows. The shock raises the clearing price; it does not remove the clearing mechanism.
The most important structural insight about ΔH_year is that its two largest components — ETF inflows and Strategy equity-funded buying — are procyclical. They are strongest when price is rising and weakest when price is falling. This means the absorption rate and CoX do not move independently in the real world.
The regime toggle adjusts both simultaneously in their naturally correlated directions, rather than allowing users to set bullish absorption with bearish CoX (a combination that is not realistic).
| Toggle | ΔH_year Adj. | CoX Adj. | What It Represents |
|---|---|---|---|
| Bull | +30% | −10% | Momentum environment. Inflows accelerating. |
| Neutral | Base | Base | Current conditions continue. |
| Risk-Off | −45% | +15% | Macro shock. Inflows stall, weak hands sell. |
In Risk-off, R can actually decline in the near term because ΔH_year slows (numerator grows slower) while CoX rises (denominator grows larger) simultaneously. The model shows this honestly — R can move backwards, not just plateau.
The STRC and SATA components use a smaller regime adjustment than ETF and equity absorption: 115% in Bull, 100% in Neutral and 75% in Risk-Off. This reflects capital sourced from income markets rather than only BTC price momentum — a structurally different buyer psychology, while still recognising that preferred issuance can slow.
Strategy's STRC and Strive's SATA turn perpetual preferred equity into a capital pipeline from income markets into Bitcoin accumulation. Investors can seek a variable cash yield through listed securities while the issuers use balance-sheet capital to acquire Bitcoin.
This matters because preferred demand is partially decoupled from BTC price cycles. Unlike ETF inflows, which can slow sharply when momentum breaks, preferred demand is also driven by yield appetite in credit and income markets — a different investor psychology operating on a different cycle.
Strategy maintains a 2–3 year USD dividend reserve at all times. This means the failure mode that would reverse the STRC capital pipeline requires a very specific sequence:
BTC drops hard → stays down 2+ years → Strategy cannot raise new capital → burns through entire USD reserve → misses dividend
If that sequence plays out, the entire Bitcoin investment thesis is under existential threat — making the STRC contribution to the supply shock model the least of anyone's concerns.
Strive held 21,356 BTC as of 21 August 2026. During the preceding week it bought 1,110 BTC while SATA shares outstanding increased by 441,313. Strive also issued common shares in that period, so the filing does not support attributing the entire BTC purchase to SATA alone.
The calculator therefore uses a deliberately explicit scenario rather than pretending to know the financing split: 15k BTC per year by default, adjustable from zero to 75k. SATA adds to annual absorption, while Strive's confirmed 21,356 BTC is separately included in the current HODL sink.
When CoinGecko identifies Strive, its holdings are removed from H_other and displayed as H_strive. If the API misses Strive, the calculator uses the SEC-confirmed fallback. SATA's annual slider adds only future capacity.
Already-completed STRC- and SATA-supported purchases sit in H_strategy and H_strive. Their rate sliders project additional future annual capacity and feed ΔH_year, not the current holdings balance.
The calculator converts each month estimate into a projected calendar date using the viewer's current local date when the tool is opened. The timeline therefore rolls forward automatically rather than remaining anchored to the model's original March 2026 publication date.
The calculator displays this across all three CoX scenarios simultaneously. The range communicates honest uncertainty — a base case of ~6 months can be 2 months in the bull CoX reading or 13 months in the bear reading from the exact same set of assumptions.
| Regime | CoX | ΔH_year | T_years | Projected |
|---|---|---|---|---|
| Bull | 1.80M | 1.235M | 0.13 | ~6 weeks |
| Bull | 2.10M | 1.235M | 0.37 | ~4–5 months |
| Neutral | 1.80M | 950k | 0.17 | ~2 months |
| Neutral | 2.10M | 950k | 0.49 | ~6 months |
| Neutral | 2.70M | 950k | 1.12 | ~13 months |
| Risk-off | 2.10M | 522k | 0.88 | ~10–11 months |
| Risk-off | 2.70M | 522k | 2.07 | ~25 months |
The ShockScore is deliberately zero until R crosses 1.0 — preventing false positives in the tightening regime. It multiplies two conditions that must be present simultaneously: structural dominance (R > 1) AND active exchange outflow (negative d/dt CoX). The regime multiplier reflects that a shock in bull conditions (demand surging into constrained supply) is more intense than the same R reading in risk-off (where demand is absent).
Price must rise when H_sink growth exceeds the rate at which ColdFloat refills CoX. The supply shock is nonlinear and occurs after duration, not at a single price level. The revised model adds that the shock raises the price required to find a ceiling rather than eliminating the ceiling — and that STRC and SATA create repeatable preferred-capital channels that partially decouple institutional BTC absorption from BTC price cycles.
The model now makes the incremental preferred-capital effect visible. If STRC and SATA continue scaling into income allocations, the timeline may compress. If a macro risk-off event materialises, R can retreat and the timeline extends — but the structural trend resumes once conditions normalise, as H_sink growth is largely irreversible.
The shock is not a single event. It is a regime shift. Once R crosses 1.0, even average demand faces asymmetric seller scarcity — turning reflexive as price must clear higher to coax ColdFloat back in. The nonlinearity kicks in hardest post-R=1, not at it.