A single-file, no-build, engineering-first Bitcoin valuation model.
Open index.html in a browser and play with the parameters.
- Adoption: stacked S-curves (Wave 1: retail/institutional; Wave 2: sovereign/settlement).
- Dynamic TAM:
TAMᵢ(t) = TAMᵢ₀ · e^{gᵢ (t − t₀)}— expanding boundary condition. - Price:
P(t) = M(t) / S_free(t)whereM(t) = Σ[TAMᵢ(t) · Aᵢ(t)^{γᵢ}]. - Free-float:
S_free(t) = S_total(t) · (1 − h(t)),h(t)is a logistic withholding curve.
Defaults are calibrated to target ≈ $2.5M/BTC in 2028.
- Download this repo or copy
index.htmlto any folder. - Double-click
index.htmlto open it in your browser. - Tweak parameters in the cards; the chart updates live.
- Optional: click Export CSV to download the time series.
No Node.js. No build. Just HTML + Chart.js from CDN.
- TAM₁ ($T): starting store-of-value market size.
- TAM₁ Growth (%/yr): nominal growth (GDP + asset inflation).
- t50₁ (year): midpoint year when adoption ≈ 50%.
- k₁ (/yr): steepness of the adoption S-curve.
- γ₁: monetization intensity (>1 adds convexity).
- Enable Wave 2: on/off.
- TAM₂ ($T), TAM₂ Growth, t50₂, k₂, γ₂: same meanings as above.
- Supply 2025/2028/2032 (M BTC): piecewise linear approximation of circulating supply.
- Free-Float Withheld at Saturation (%): max withheld share held by long-term/sovereigns.
- Withholding Midpoint (t_h): year when withholding ≈ 50% of max.
- Withholding Steepness (k_h): slope of the withholding curve.
- Y-Axis: log scale toggle (recommended).
- Log scale uses a positive floor to remain valid.
-
Adoption (Wave i)
Aᵢ(t) = 1 / (1 + e^{−kᵢ (t − t₅₀ᵢ)}) -
Dynamic TAM (Wave i)
TAMᵢ(t) = TAMᵢ₀ · e^{gᵢ (t − t₀)} -
Market Cap
M(t) = Σ [TAMᵢ(t) · (Aᵢ(t))^{γᵢ}] -
Free-Float Supply
S_free(t) = S_total(t) · (1 − h(t))withh(t) = h_max / (1 + e^{−k_h (t − t_h)}) -
Price
P(t) = M(t) / S_free(t)
Engineering framing: multiple step responses (logistics) with a time-varying boundary condition (TAM growth) and an effective state constraint (free-float).
- Create a new GitHub repo (e.g.,
bfem-html). - Commit
index.htmlandREADME.md. - In repo Settings → Pages, set Source to
mainbranch and **/ (root)`. - Open the Pages URL (usually
https://<user>.github.io/bfem-html/).
- Optional historical price overlay (CSV drop-zone).
- Permalinked parameters via URL querystring.
- Free-float sourced from on-chain analytics (API hook).
MIT — use freely with attribution to Bitcoin for Engineers (BFEM). Bitcoinforengineers.com