About & Support ← home

Floor $61,529 · hashrate 1,019 EH/s · data through 2026-07-15

What is this site?

btcbtfd.com aggregates eight indicators that historically fired at Bitcoin bear-market bottoms — production cost floor, Mayer Multiple, 200-week moving average, Hash Ribbons, Puell Multiple, drawdown from ATH, Fear & Greed, and MVRV — into one live score and verdict on the front page. The flagship input is our own estimate of Bitcoin's cost of production: what it costs the average miner to produce one BTC. When price drops below that cost, miners capitulate and the market is near a cycle bottom — the history page shows every time it happened and what BTC did next.

How is the floor calculated?

The model works like this: take the network hashrate, estimate the fleet-average mining efficiency (J/TH) from real ASIC hardware specs, assume 0.05 $/kWh electricity at a PUE of 1.1, and divide daily network mining cost by the daily BTC issuance. Electricity is assumed to be 60% of total mining cost, which gives the total production-cost estimate. Data updates twice a day from mempool.space, Yahoo Finance, and FRED. Full derivation, hardware database, and 2032 projections: read the research.

Support

This site is free — no ads, no affiliate links, no paywall. If the floor signal ever helps you buy a bottom, send a few sats.

Want to know the moment BTC crosses below its production cost? Join the Telegram alert channel.

Embed the floor & free API

Put the live floor signal on your own site, blog, or README — it updates automatically, no key required.

Widget (iframe):

<iframe src="https://btcbtfd.com/widget" width="320" height="110" style="border:0"></iframe>

Badge for GitHub READMEs (markdown) — renders as BTC floor badge:

[![BTC floor](https://btcbtfd.com/badge.svg)](https://btcbtfd.com)

JSON API (CORS open, cached 5 min):

curl https://btcbtfd.com/api/floor
{"price": 61511.0, "floor": 51975.0, "margin_pct": 18.35, "below": false, ...}

curl https://btcbtfd.com/api/signals
{"verdict": "NOT YET", "score": 2, "total": 8, "signals": [...]}