For the coins that moved that day (our ledger keeps outputs of 0.01 BTC and up): what they were worth then against what they were worth the last time they moved. Above 1 the coins that changed hands did so at a profit, below 1 at a loss. Bold line = 30-day average.
1.001 profit ratio of the coins that moved on Oct-25 2026, the last day in this build, measured and published by askthetape.com.
Each coin our ledger holds has a price on the day it moves and a price on the day it last moved before. Divide the first by the second, coin-weighted over everything that moved that day, and you get the day's number: above 1 the coins that changed hands were let go at a profit, below 1 at a loss. Chartists call it SOPR. It is rebuilt from our own copy of the ledger; coins that last moved before 2010-07-17, before bitcoin had a market at all, have no cost to compare against and are left out of the ratio.
| leg | own UTXO lifecycle ledger (it was built once from a public chain archive and has been extended block by block from our own node since 2026-07-23): for the outputs spent on a day, Σ value × close(that day) ÷ Σ value × close(the day they were created) · outputs created before the priced era are excluded, not priced at zero |
|---|---|
| cadence | daily |
| since | 2010-07-17 (price era) · ledger from 2009-01-03 |
| 🩸 early price | price before 2011-08-18 is not our own capture: it is the Mt.Gox daily tape, the first market bitcoin ever had — Mt.Gox daily tape (close), an open mirror, sha256 3390e9e9, pulled 2026-09-12, 391 days of it, and our own daily closes take over on 2011-08-18. Before 2010-07-17 there was no market at all, so coins born earlier have no price and no cost basis — we print that rather than fill it: 1,553,115 BTC, 7.76 % of the coins our ledger holds, stand outside every number on this page. Nothing is backfilled and no quote from a non-exchange is used. |
| note | the plain ratio, no 1-hour filter: same-day churn is in it |
| hourly window · where it comes from | the events of this window are read from our own node; the ledger they are added to was built once from a public chain archive and has been extended block by block from our own node since 2026-07-23. The events are every output of 0.01 BTC and up that died and every output that was born, read block by block (getblock … 3 with prevout), with the hour it happened. The carrier holds 8,240 hours, 2025-11-16T00:00:00Z → 2026-10-26T12:00:00Z, 343 days deep from a fixed first day and growing every hour. |
| hourly window · how the hours fold | a RATIO OF SUMS: Σ(value × the price of the hour it died) ÷ Σ(value × the price of the hour it was born) — never the average of hourly ratios. The numerator and the denominator ride in the window so the hours can be added up. «N hours» in the window's own header means BUCKETS WITH DATA, not the distance from the first point to the last — the header prints both. Selected spent-output flows are zero in verified no-block hours; ratios, states and other missing observations remain blank. Block counts are a separate series where present, and describe the native node segment only. |
| hourly window · what this ledger cannot see | the ledger does not see outputs below 0.01 BTC — that is 87,146 BTC, 0.433 % of the coins alive on 2026-10-25, measured against what our own node counts as mined (the scheduled subsidy of every block header it holds). It is a threshold, not a fault, and it is the same threshold the daily page carries. |
| hourly window · which price | the hour is priced with the Binance BTC perpetual of our own capture — the price of THAT HOUR. The daily page uses the Bitstamp daily close. The two were measured against each other on this build over 343 days: median 0.5 bp apart, mean 0.7 bp, worst 42.9 bp. Coins born before this window keep the daily close of their birthday, because the hour of their birth is not in the carrier. Second calibration, hour for hour against the public hourly closes of the spot venue (167 hours, measured 2026-09-19): median -0.05 bp, worst 24.46 bp — so the gap in the first number is the 23:00Z hour against a daily close, not one venue against another. A one-off check, not a captured feed. |
| hourly window · one line or two | a second, thinner line is drawn: «as the daily page counts» — the thin line prices both sides at the day's close instead of the hour's. What the two lines differ by is the whole of what the hour adds, and it is drawn rather than argued. |
| hourly window · judged | This comparison covers the native node segment from 16 November 2025 only: 🩸 12 birth × spend cells on 3 of 344 closed days differ from the daily ledger of our own node — see the judge log; this window is not vouched for until that is explained. Judge run 2026-10-26, 6.4 hours ago. The judge runs daily against the daily ledger of our own node; a day the 35-day carrier no longer holds is not judged rather than counted as a difference. |
| this build | data to Oct-25 2026 |
| policy | no backfill · read it here · export: whole history |
The chart itself is drawn in the browser: turn JavaScript on to hover a day, pick a window and draw your line. The numbers above come from the last build, Oct-26 2026 14:06Z.
What the tape says today · what's new · all 111 metrics