How we get the numbers
We show live market data with an 'as of' timestamp and never invent figures. When a feed is down, we fall back to the last cached value and label it — we don't paper over gaps.
Data sources
Bitcoin price & history
CoinGecko public API. Spot price refreshes on a ~60-second cache; historical series are cached for several hours. No API key, no paywall.
MSTR & preferred prices
Yahoo Finance chart endpoints for MSTR, STRC, STRK, STRF, and STRD. Quotes are exchange-delayed and cached server-side. Preferred prices refresh on a ~5-minute cache.
Balance-sheet fundamentals
Bitcoin holdings, share count, debt, cash, and preferred liquidation value are maintained by hand from Strategy's public filings and investor dashboard.
- BTC holdings
- verified August 3, 2026
- USD reserve (cash)
- verified August 3, 2026
- Share count (ADSO)
- verified August 16, 2026
- Debt & preferred liquidation value
- verified August 3, 2026
Caching & freshness
Every page renders server-side with the numbers baked into the HTML, plus a visible timestamp. A green dot means live; a grey dot means we're showing the last cached snapshot because a provider was unreachable.
Privacy & analytics
We use our own cookieless, anonymous analytics (no personal data, no third parties, no cross-site tracking) — page views and which tools are used, stored in our own database. The portfolio analyzer runs entirely in your browser; your transactions are never sent to us.
The formulas
BTC NAV
BTC held × BTC priceThe live market value of all the bitcoin on Strategy's balance sheet.
Diluted market cap
assumed-diluted (ADSO) shares × MSTR priceWe use Strategy's Assumed Diluted Shares Outstanding (ADSO) — all converts, preferreds, options and RSUs — as a conservative denominator. This differs from the basic-share market cap shown on Yahoo/Google, and from the GAAP if-converted diluted count that collapses to basic in a net-loss quarter.
mNAV (market cap)
market cap ÷ BTC NAVDollars of equity value per dollar of bitcoin held. Above 1.0 is a premium.
mNAV (enterprise)
(mkt cap + debt + preferreds − cash) ÷ BTC NAVAdds obligations senior to common stock for a stricter view of the premium.
BTC per share
BTC held ÷ assumed-diluted (ADSO) sharesThe honest ownership metric — how much bitcoin backs each share, on the ADSO basis.
mNAV over time
basic shares(t) × MSTR(t) ÷ (BTC held(t) × BTC(t))The historical premium chart on the MSTR page. Holdings step at disclosed 8-K purchase dates and shares use period-end basic count (stepped quarterly) — a slightly lower basis than the live diluted mNAV, so the newest chart point can sit just under the headline number. Shares are the approximate input; the mNAV = 1.0 crossing is derived from the plotted series, not hand-set.
Current yield (preferreds)
(coupon × $100) ÷ market priceAnnual dividend on the $100 stated value divided by the live price.
Issuance & dilution tracking
The issuance tracker parses the ATM Update and BTC Update tables directly from Strategy's weekly Form 8-K filings (CIK 1050446) and stores every figure exactly as filed. We never estimate a missing value; a filing that fails a continuity or parse check is held for manual review rather than shown.
Worked example — STRK, week of Jul 14 2025
The 8-K reported 573,976 STRK shares sold for $71.1M in net proceeds, with $20,450.9M remaining under the program. We add that $71.1M to the week's total raise and to the running cumulative, and carry the $20,450.9M forward as STRK's remaining capacity until a later filing revises it.
Dollar precision
Most 8-Ks state dollar amounts to the dollar. A few early filings (May–June 2025) stated them to a magnitude instead — “approximately $75.1 million.” We store each value as filed and tag which precision it used, so cumulative dollar totals that include a magnitude-rounded week are shown with an approximate marker (≈) rather than implying false to-the-dollar accuracy. Per-week figures are always exactly what the filing said.
BTC treasury activity — buys and sells
Strategy's 8-Ks report treasury activity, not just share issuance. A single filing can disclose bitcoin purchases, sales, or both — sometimes split across more than one reporting period. We parse each period's direction (bought vs. sold) straight from the filing and never infer it from a price move or a change in holdings. When a filing splits activity across periods, we sum the legs: two sale periods of 1,363 and 2,225 BTC are reported as 3,588 BTC sold, with proceeds added the same way.
Net BTC change
Each filing's net change = BTC bought − BTC sold. The continuity check verifies that a week's holdings equal the prior week's total plus that net change (for provably adjacent weeks), so a sale that reduces holdings reconciles just like a purchase that grows them.
What we don't track
The activity table covers bitcoin bought and sold only. We deliberately do not report dividends or distributions paid out — a BTC sale earmarked to fund a preferred distribution is shown as a sale, and the downstream cash payment is out of scope here.
Limitations & disclaimer
- Calculator returns ignore dividends, fees, taxes, and slippage.
- MSTR history before August 2020 predates the bitcoin strategy.
- The mNAV-over-time chart steps holdings and shares between filings and uses a basic (not diluted) share count — treat it as a close approximation of the trend, not a tick-by-tick series.
- Balance-sheet figures lag reality between filings; check the last-verified date.
- Delayed quotes may differ from your broker's real-time price.
- This is data and education, not financial advice.
Questions about the approach? Read about the project →