How we price
PRICEB.TC publishes a BTC/USD index from Coinbase Exchange and Binance last prices, weighted by each venue's 24-hour volume. It is a disclosed two-venue index — not a global average and not a claim of the "true" world price of Bitcoin.
Venues we use
| Venue | Pair | Weight in v1 | Role |
|---|---|---|---|
| Coinbase Exchange | BTC-USD | 24h volume | Required USD spot leg |
| Binance | BTCUSDT | 24h volume | Required; USDT-linked USD proxy (see note below) |
Kraken and other venues are not included in v1. Rolling 60-second trade-volume weights are not used in v1 (possible later).
How the index is calculated
When both venues are healthy, the headline price is a last-price VWAP: each venue's last price weighted by that venue's 24-hour quoted volume (weightSource: "24h" on every v1 source).
Plain form:
index = (last_coinbase × vol24h_coinbase + last_binance × vol24h_binance) / (vol24h_coinbase + vol24h_binance)(with Binance last price taken from BTCUSDT under the USDT≈USD assumption below).
We recompute as venue ticks arrive and publish to the site and API at most about once per second.
v1 does not use rolling 60-second trade volume for weights.
Binance USDT note
The Binance leg is BTCUSDT, not BTC-USD. For the index we treat 1 USDT ≈ 1 USD. USDT can trade slightly away from the US dollar; that difference can move the index a little versus a pure USD book. We show this clearly so the number stays honest.
When a venue is down
| Healthy venues | What you see |
|---|---|
| Two | Full index — labeled BTC/USD index (Coinbase + Binance) |
| One | That venue's last price only — labeled degraded (e.g. Coinbase only or Binance only). We do not pretend a one-venue print is still a multi-venue VWAP. |
| Zero | We hold the last good index for up to 30 seconds, then mark the feed stale / error. We never invent a number. |
Outlier filter (2%)
If one venue's last price differs by more than 2% from the median of healthy venues, we exclude it for that tick and keep using the remaining healthy venue(s). The API can mark that source as excluded; the methodology stays the same.
Stale data (30 seconds)
If every venue feed fails, we keep showing the last good index for at most 30 seconds, then surface a stale/error state. We do not blend stale and fresh quotes into a silent average.
24h stats on the home card (OHLCV)
The home card's 24h change, high, low, and volume stay tied to Coinbase Exchange BTC-USD ticker/stats, even when the headline number is the two-venue index. They are not an index OHLC. We label them as Coinbase so the card does not pretend the whole strip is multi-venue.
Other currencies (FX)
Non-USD display currencies are indicative conversions (ExchangeRate-API), typically refreshed daily. They are not separate crypto spot markets.
Price history
The chart and history endpoints remain Coinbase BTC-USD labeled (source: "coinbase") until a dedicated multi-venue history series exists. Past candles are not relabeled as the index.
API
The same observation is available at /api (/api/price, /api/stream, etc.). New fields such as method, degraded, and sources[] describe how the headline price was built. Clients that only read price keep working.
What we do not claim
We do not call this a global average, a world price, or the single true Bitcoin price. It is a two-venue BTC/USD index (last prices × 24h volume) with explicit USDT, fallback, outlier, and stale rules — and Coinbase-labeled OHLCV/history until those series are multi-venue.
Methodology updated 2026-09-28
Free utilities stay free. Visibility beside the live Bitcoin price is a crypto sponsorship.