Bitcoin Scenario Lab

Method and sources

How the lab calculates, where the numbers come from and what we have and have not checked. This page is translated from the Dutch version.

Open the lab

Three layers

  • Original Bitcoin24: the complete Bitcoin24 v1.0 workbook (9 sheets, 6,484 formulas, 7 scenario tables) runs unchanged in our own calculation engine. Starting values are historical: 2024, BTC USD 65,000.
  • DBE Dutch elaboration: the same price growth rule with an explicit start date (2026-10-04) and start price (€ 75,896, mempool.space /api/v1/prices, 4 oktober 2026 19:25 UTC), in euros, with inflation only for purchasing power, Dutch box 3 and a BV route.
  • DBE tools: regular or one-off buying, costs, buffer, withdrawals, a collateralised loan, stress paths, sensitivity, fair comparison and liquidity. These are not part of Bitcoin24.

Source and reuse

Bitcoin24 v1.0, github.com/bitcoin-model/bitcoin_model, commit 30c97a7ce3148d1afc76ab83b46a8f16a40622d5 of 3 September 2024. Original contributors according to the README: Michael J. Saylor, Shirish Jajodia and Chaitanya Jain. DBE is not affiliated with or endorsed by the authors.

The repository has no licence file and GitHub reports no licence. A public repository is not a reuse licence. Until the rights holders give permission, the original layer only appears in this non-indexed preview.

How the price grows

Bitcoin24 (Macro, row 52): growth in year 1 is a chosen rate; each following year growth falls by a fixed step until a long-term level. The three original scenarios:

  • Bear: 25.0% → −0.5% per year → 18.0%
  • Base: 50.0% → −2.5% per year → 20.0%
  • Bull: 75.0% → −5.0% per year → 25.0%

Bitcoin24 does not model volatility. That is why there is a separate stress layer: a 50 or 80 percent drop, stagnation, lower growth and unexpected costs. These are adjustable test paths, not probabilities.

Calculation order (DBE)

Each month: 1. price moves to the monthly price (growth^(1/12), then any stress shock), 2. the contribution arrives and is split, the bitcoin part is bought after costs, 3. savings interest, 4. withdrawals, setbacks, interest and repayment from savings; if savings run out bitcoin is sold; if that is not enough a visible shortfall remains, 5. collateral check for a loan, 6. at year end optional rebalancing and box 3 based on 1 January values, paid in July.

Tax

Box 3 2026, deemed-return method: tax-free allowance € 59,357 per person, debt threshold € 3,800, other assets 6.00% (in force), bank balances 1.28% (provisional), debts 2.70% (provisional), rate 36%. Checked 2026-10-04. Tax Service. Ordinary private crypto falls in box 3 at its 1 January value; mining or trading with extra work can fall in box 1 and is not supported. Source (Dutch).

Dutch corporate tax 2026: 19% up to € 200,000, 25.8% above. In the BV route a fiscal result on bitcoin only arises on sale or on write-down to lower market value (valuation at cost or lower market value). Years after 2026 use an explicit assumption only. Everything is simplified and must be checked by a Dutch tax adviser before publication. Tax Service

Validation

  • All 6,586 formula and table cells of Bitcoin24 compared with the values Excel stored in the file: 6,582 equal within a relative difference of 10^-9. The remaining 4 are within Excel’s iteration tolerance (0.001); they come from circular references in Corporate and Institution.
  • Five input sets recalculated with LibreOffice Calc as an independent engine (other price scenarios, start price, inflation, strategies). Per set 5,441 comparable cells, of which 5,439, 5,439, 5,435, 5,439, 5,438 exactly equal. LibreOffice already differs from Excel in the unchanged workbook for 1,043 cells with circular references (Corporate); those are excluded. Other differences: two cells where Excel shows −1 and LibreOffice is empty (0^(1/n)), and one strategy choice LibreOffice did not take over on opening.
  • DBE layer: 19 of 19 checks passed, including: price path equal to the original, zero growth returns contributions, equal contribution for one-off and regular buying, box 3 and corporate tax hand calculations, liquidity and edge cases.
  • Not yet validated: a freshly recalculated Excel reference with changed inputs (we used the stored Excel values and LibreOffice), all Dutch and English texts by a second reader, and the tax examples by a tax adviser.

Known quirks in the source

  • Corporate!AH19 contains a broken reference (=#REF!+1). No effect on results.
  • In the chart helper table of Indebted Nation some cells return #N/A. No effect on the main results.
  • In this workbook Excel only recalculates the scenario comparisons after F9 or the Run_Scenarios macro (calcMode autoNoTable). The lab recalculates them on every change, so you never see a stale comparison.
  • Bitcoin24 uses English units: billion is 10^9, trillion is 10^12.

Website and app share one calculation package

All calculations live in one TypeScript package (dbe-lab 0.1.0 (Bitcoin24 v1.0 @30c97a7)) without dependencies. The DBE app (Vinnybtc/dbe-app) can use it directly, so the same input gives the same result. The calculators in the current app use fixed prices (for example € 95,000) and unverified historical prices; they move to this package with a live or manual price and source.

Privacy

Your input stays in your browser. Saving only happens on this device and only when you choose to. A shared link contains only what you select, after the #, so it is not sent to the server or analytics. No personal amounts go into analytics.

Glossary

CAGR
Average growth per year, as if growth had been equal every year. Formula: (end value / start value)^(1/years) − 1.
Allocation
Which part of your contribution or wealth goes into bitcoin and which part into savings or something else.
Rebalancing
Periodically bringing the mix back to the chosen allocation by buying or selling. That costs transactions and fees.
Dilution
When more units are added (new shares, extra supply), each existing unit represents a smaller share.
Nominal and real
Nominal is the amount in euros of that year. Real corrects for inflation: what it is worth in start-year euros.
Sats
The smallest unit of bitcoin: 1 BTC = 100,000,000 sats.
LTV
Loan-to-value: the loan divided by the value of the collateral. Above an agreed limit collateral is sold.
Box 3
Dutch tax on savings and investments. For ordinary private bitcoin, the value on 1 January counts as an other asset.
Cost or lower market value
Valuation rule the Dutch tax authority mentions for bitcoin in a BV: the book value does not exceed the purchase price.
NAV premium
The part of market value above the value of the underlying assets (in Bitcoin24: bitcoin).
Billion and trillion
English billion = Dutch miljard (10^9). English trillion = Dutch biljoen (10^12). Bitcoin24 uses the English terms.