
BITCOINREVERSAL RESEARCH / Scarcity reference
Bitcoin Stock-to-Flow
Bitcoin price, scarcity reference and deviation. Daily data, with the formula and its limits.
Bitcoin Stock-to-Flow price and deviation chart
Daily calculations · Drag to pan · Pinch or scroll to zoom
Selected scarcity inputs
Modeled stock: 19,224,900 BTC · Annualized flow: 164,250 BTC/year · Stock-to-flow: 117.0466 years.
BitcoinReversal calibration · Not PlanB S2F or S2FX · A model reference, not a price target.
Recreated by Simon · BitcoinReversal. Original concept: PlanB. Method & sources
Charting by TradingView Lightweight Charts™
How to interpret Stock-to-Flow deviation
On Sep 19, 2026, Bitcoin closed at $81,255, 79.85% below this calibrated Stock-to-Flow reference of $403,221.
A negative reading means price is below this particular scarcity curve. It does not establish undervaluation, a price target or when a gap will close.
What do stock-to-flow and reversion mean?
Stock-to-flow divides the modeled Bitcoin supply by estimated annual issuance. Here, a ratio of 117.0466 means roughly 117.0466 years of issuance at that calculated annual rate.
“Reversion” describes a move back toward the reference. The chart measures the gap; it does not establish that Bitcoin must return to the curve. Demand and market conditions can overwhelm a supply-based explanation.
Data delayed: the latest available completed observation is Sep 19, 2026. The latest logged BTC price is displayed separately. Refresh the page.
Put scarcity in a wider market context
Explore how BitcoinReversal combines defined cycle conditions into buy-side, sell-side and transitional research signals.
How far has price moved from this S2F reference?
These calculations compare completed daily closes with the current custom calibration. They show the size and persistence of historical gaps, including periods when price stayed far below the curve.
Since Dec 18, 2024 through Sep 19, 2026.
Median daily price deviation · 365 observations.
Median daily price deviation · 262 observations.
Retrospective comparison through Sep 19, 2026. These figures are not trading returns, archived PlanB forecasts or an out-of-sample test. A large negative deviation does not demonstrate an attractive investment.
Inspect annual deviations and how they are calculated
| Year | Days | Median | Minimum | Maximum | Days below |
|---|---|---|---|---|---|
| 2021 | 365 | +93.34% | +17.01% | +464.34% | 0 |
| 2022 | 365 | -29.96% | -53.11% | +49.47% | 237 |
| 2023 | 365 | -20.09% | -50.95% | +23.26% | 313 |
| 2024 | 366 | +18.90% | -18.96% | +100.83% | 101 |
| 2025 | 365 | -66.39% | -78.50% | -10.24% | 365 |
| 2026 YTD | 262 | -82.19% | -85.39% | -75.49% | 262 |
Each daily deviation is 100 × (close / reference − 1). The annual median is the middle daily value, averaging the middle pair for an even count. The current run counts consecutive completed calendar days below zero through the latest observation. A missing day ends the run.
Inspect the dated snapshot and all annual calculations · Recalculate from the daily CSV
Scarcity does not measure demand
The formula uses supply and issuance. It has no demand, liquidity or adoption input. A rising scarcity ratio alone does not establish a rising market price.
The curve depends on assumptions
Constant blocks per day, the 463-day window and a custom coefficient shape the curve. Supply is approximated, not read from the blockchain.
A future curve is conditional
The optional dashed curve assumes a halving on April 20, 2028. That date is a modeling assumption; the actual event depends on block production.
A predictive evaluation would freeze the specification before observing later prices and compare errors with stated baselines. This historical reconstruction does not make that claim.
How this Stock-to-Flow model is calculated
The reference raises a smoothed scarcity ratio to a fixed exponent. It uses BitcoinReversal’s inherited calibration, not an exact reproduction of PlanB’s S2F or S2FX.
Flow(t) = [Stock(t) − Stock(t − 463 days)] × 365 / 463 SF(t) = Stock(t) / Flow(t) Reference price = exp(−3.095001711828382) × SF(t)^3.36 Deviation (%) = 100 × (BTC close / reference price − 1)
Exact parameters, modeled supply and halving dates
| Coefficient | 0.045274934957269912 |
|---|---|
| Exponent | 3.36 |
| Lookback | 463 calendar days |
| Blocks per day | 144, assumed constant |
| Annualization | 365 days |
| Supply cap | 21,000,000 BTC |
| Input SHA-256 | 6968b339a356a567e5e31dffdf4fc99874d044b9d6b1e37a11097e6ba006f29b |
| Method SHA-256 | f17cc4990009f937fdcb289714a9c03e00d07cbc7e9ae10090e1f1ee73646c0a |
Modeled stock is the sum of elapsed calendar days × 144 blocks per day × each era’s block reward, capped at 21 million BTC. An era starts at 00:00 UTC on the date below; fractional elapsed days are allowed. The 2009 start has zero modeled stock at that instant.
| Era starts · UTC | BTC per block | Date basis |
|---|---|---|
| 2009-01-03 | 50 | Historical date in this model |
| 2012-11-28 | 25 | Historical date in this model |
| 2016-07-09 | 12.5 | Historical date in this model |
| 2020-05-11 | 6.25 | Historical date in this model |
| 2024-04-20 | 3.125 | Historical date in this model |
| 2028-04-20 | 1.5625 | Assumed future date |
This approximation does not measure circulating supply, actual block intervals, lost coins or the exact halving block timestamp. The 463-day window smooths changes in annualized issuance.
How sensitive is the reference to the scarcity ratio?
With the exponent held at 3.36, a 5% increase in the stock-to-flow ratio raises the reference by about 17.81%: (1.053.36 − 1) × 100. A 5% increase in the coefficient raises it by 5%.
These are mathematical sensitivities, not predicted returns or confidence intervals. The inherited coefficient’s original fitting sample and optimization record are not documented. No new calibration is presented as independently validated.
Price sources, UTC dates and missing observations
The historical import from January 4, 2011 through March 13, 2026 does not preserve its original vendor or closing cutoff. That part of the price history remains unverified.
From March 14, 2026, BitcoinReversal aggregates CoinGecko ticks and stores the final available tick in each UTC day. Canonical stored dates are represented at 00:00 UTC; the unfinished current day is excluded. Sampling and source revisions can affect prices.
This snapshot contains 0 missing calendar days between the first and last observed close. Missing dates receive no invented price or deviation. The full model has 6,938 daily rows, including conditional calculations through January 1, 2030.
Daily, weekly and monthly candles, date selection and projections
The initial view shows five years of observed history at weekly frequency. 1D, 1W and 1M change the display, not the daily model. Weekly buckets start on Monday in UTC; monthly buckets follow the UTC calendar.
Candles retain the first open, highest high, lowest low and last close in each bucket. The scarcity reference and deviation use its last observed daily value, with that observation’s actual date. Future days never overwrite a bucket’s observed close.
The date selector reads an exact daily calculation. When that date differs from the sampled plotted point, both dates are stated below the graph. Future-only periods have a model value and no observed Bitcoin price or deviation. Halving markers identify the sampled period containing the modeled date.
Versions, one-snapshot consistency and downloads
Method v9.0 standardizes completed-day inputs and canonical dates. Presentation v17 improves the chart and documents its assumptions without changing the existing stock, flow, coefficient or exponent.
The page’s reading, interpretation, historical comparisons and reserve chart come from one snapshot. Its compact data contains full-precision daily OHLC observations and fixed model parameters. The browser reconstructs the published formula and checks the latest result against the server before opening the interactive chart.
CSV and full JSON expose the daily model. CSV values are rounded to 10 decimal places; JSON retains the underlying precision. A later download may contain a newly completed day, so compare the observation date. The versioned method file has a SHA-256 checksum; the input checksum covers dated OHLC values with the encoding stated in the snapshot.
A dated chart others can verify
Keep the observation date and method version with the chart. Credit this independent calibration and link to the canonical page.
The social preview is a dated chart snapshot. For a newer image, export the current chart below. Check applicable source terms before redistributing third-party raw prices.
Bitcoin Stock-to-Flow questions
Is the Stock-to-Flow model still accurate?
Accuracy requires a specified model, forecast date, horizon and error measure. This page shows retrospective deviations from BitcoinReversal’s custom calibration, including prolonged large gaps. Those results do not validate a price forecast or measure the original PlanB model’s forecast record.
What is the difference between S2F and S2FX?
PlanB’s original S2F relates Bitcoin value to scarcity. S2FX extends the argument across different asset groups and proposed phases. This page uses a single Bitcoin time series and a custom calibration; it does not implement the cross-asset S2FX model.
Does price below the curve mean Bitcoin is cheap?
It means price is below this reference. The gap does not prove undervaluation or imply that price must rise. The formula does not model demand, market liquidity or the probability of reversion.
Why does the curve rise after a halving?
A smaller block reward gradually lowers the trailing 463-day issuance estimate. Holding the rest of this formula constant, that raises stock-to-flow and the reference. This is a consequence of the equation, not evidence that the market must follow it.
Does the chart update in real time?
It uses completed UTC-day price observations. The displayed date makes the snapshot explicit; unfinished intraday prices are excluded.
Research and education. This reference does not establish a trading signal or guarantee an outcome. Explore all Bitcoin charts.