Why two sites report different volume for the same exchange

Exchange volume is a calculation, not a reading. The six choices that make two honest sites disagree, and how to pick a figure for a dashboard or a backtest.

Because an exchange volume figure is a calculation, not a reading. Each site picks a time window, a set of pairs, a currency conversion, a rule for derivative contracts and a rule for volume it does not believe, and the exchange controls none of those choices. Two honest sites can disagree by a few per cent for the same exchange, and by a multiple once one counts derivatives or discounts suspect trading and the other does not.

Open two market-data sites, look up the same exchange, and the 24-hour volume will not match. It will rarely be close enough to call rounding and rarely far enough to call an error. That gap is not a bug in either site and it is not the exchange misreporting to one of them. It is the visible part of half a dozen decisions each site made before the number existed, and almost none of them is printed next to it.

This page is about the headline figure — an exchange's, or a coin's, 24-hour volume as an aggregator presents it. The price beside it has its own page, where the bitcoin price actually comes from, and the candle beneath it has a glossary entry, OHLCV. The decisions overlap, but volume has two problems a price does not: it is summed rather than averaged, so every inclusion error adds up instead of washing out, and it can be manufactured by anyone willing to trade with themselves.

How it works

Volume starts as trade prints. Every match on a venue's engine has a size, and the venue adds the sizes up and publishes the total — on a ticker endpoint, in candles, and in its trade feed. What reaches you passes through four hands, and each one makes a choice:

  1. The venue publishes its own totals, in units and over windows it chooses.
  2. The aggregator collects those totals — or the trades beneath them — for the pairs it has integrated, converts each into one currency at a price it chooses, and sums.
  3. The aggregator then applies a rule for volume it does not believe: a flag, an exclusion, a score, or nothing at all.
  4. The page or endpoint shows one of the resulting numbers, often without saying which.

Two sites that disagree have almost always made different choices at steps 2 and 3. The six that matter most follow, in the order they are worth checking.

Six choices that move the number

1. The time window. "24-hour volume" usually means a rolling window ending at the moment of the request. CoinGecko's exchange volume is built from each pair's rolling 24 hours; CoinMarketCap sums the volume reported "over the last 24 hours"; Binance's GET /api/v3/ticker/24hr is documented as "24 hour rolling window price change statistics"; CCXT's unified ticker defines every field as "the past 24 hours prior to timestamp". Two snapshots of one exchange taken six hours apart are two different windows, and both are correct.

But a rolling window is not the only window. Kraken's ticker returns volume as a two-element array — today, then the last 24 hours — and documents that "today's prices start at midnight UTC"; its own example response shows 4,083.67 for today against 4,412.74 for the trailing day. Binance publishes a third variant, GET /api/v3/ticker/tradingDay, whose day boundary is set by a timeZone parameter that defaults to UTC, and its rolling-window endpoint GET /api/v3/ticker documents that the window starts on the minute and can be up to 59,999 milliseconds wider than the windowSize you asked for. Coin Metrics' daily volume metrics run on UTC intervals in which time marks the start of the interval. A daily series from one source and a live 24-hour figure from another are not measuring the same thing, and a chart that puts them side by side is comparing a calendar day with a moving one.

2. The set of pairs. An exchange's total is a sum over the pairs a site has integrated, which is not the same list as the pairs the exchange lists. Beyond integration, the documented exclusions differ. CoinGecko's exchange calculation "excludes trading pairs that have been blacklisted for inconsistent data and have not been updated for over 3 hours". CoinMarketCap flags pairs reporting anomalous volume with asterisks and omits them from a coin's total — and then states, in the same article, that those pairs are not excluded from the exchange's total. One trade, on one site, can count toward the exchange page and not toward the coin page.

Which pairs are in the list moves the result more than it seems to. A pair delisted during the window drops out of any total built from current tickers while staying in any total built from historical trades. A stablecoin-to-stablecoin pair is real turnover in something that is not, for most readers, a crypto asset, and none of the methodology pages cited here singles it out: it is in the total unless some other rule removes it.

3. The conversion. A volume total in dollars needs every pair priced in dollars, and the two largest aggregators convert from opposite sides of the pair. CoinMarketCap takes the 24-hour volume "reported directly from the exchange in quote units" and multiplies it by its reference price for the quote asset — its own worked example turns 100 BTC of LTC/BTC volume into 1,000,000 USD at 10,000 USD per BTC. CoinGecko takes the base-asset volume and prices it at "CoinGecko's global volume-weighted average price" for the base coin — its worked example adds 400 ETH and 3,000 LTC from BTC pairs at 200 and 100 USD.

The two agree only when the pair trades at the global price. Suppose a thin market prints at 3% above it. The quote-side method sees the local premium, because the quote volume is the base quantity times the local price. The base-side method does not, because it re-prices the base quantity at the global average. The same trades come out roughly 3% apart, and neither site has made a mistake.

Coin Metrics documents a third route: each market's candle volume is scaled by contract size and multiplied by a dollar price, using the candle's own VWAP for spot pairs quoted in dollars and otherwise a market-derived price unless it disagrees with Coin Metrics' reference rate by more than 5%, in which case the reference rate wins. Its documentation says plainly that the result "will not reconcile exactly against a naive sum of each trade's price times quantity".

4. Spot, derivatives, or both. The largest single source of disagreement is whether a figure includes derivatives at all. CoinMarketCap defines exchange volume over spot markets. CoinGecko's exchange Trust Score applies to spot exchanges, and derivative exchanges are "ranked based on their respective Open Interest and Trading Volume figures as reported". CoinDesk Data's monthly Exchange Review leads with a combined figure: its May 2026 edition, published 15 June 2026, opens with combined spot and derivatives volume on centralised exchanges of 4.41 trillion USD for the month. On an exchange with a large futures book, the combined number is a multiple of the spot one, and it is the comparison most likely to be made by accident.

Within derivatives, the unit is a decision of its own. A perpetual contract is a number of contracts, and a contract is not a coin. Deribit's API specification states that for inverse futures and perpetuals the contract size is denominated in USD — "BTC-PERPETUAL has a contract size of 10 USD" — while for linear perpetuals it is the base coin, with BTC_USDC-PERPETUAL at 0.0001 BTC. Its book summary returns three volumes for the same market: volume in the base currency, volume_usd, and volume_notional in the quote currency. A site that multiplies a contract count by a price without the contract size is out by the size — tenfold on an inverse contract worth 10 USD — and a site that reads an inverse market's volume in coins and another's in dollars has added two different units. Open interest has the same trap: Deribit reports it in USD for perpetuals and inverse futures and in the base coin for options and linear futures.

Options add a second valuation. Coin Metrics publishes options volume both as notional — the value of the underlying the contracts control — and as market value, the premium actually paid, and notes that notional "typically runs one to two orders of magnitude larger". Two options volumes for one venue can be a hundredfold apart and both be correctly labelled.

5. Counting twice. Every trade has a buyer and a seller, and the convention on every venue and library cited here is to count it once: CCXT defines base volume as "the amount of base currency traded (bought or sold)". Double counting creeps in downstream. Binance's candles carry a "taker buy base asset volume" field that is a part of the total, not an addition to it. A cross pair such as ETH/BTC is a trade in two assets; an exchange total that counts it once through its base, as CoinGecko's worked example does, is right, and a total built by adding up per-coin pages that each include the pair is not. Coin Metrics warns about the same thing in its own metric family: its futures filters "overlap rather than partition", so a coin-margined perpetual counts toward the perpetual metric and the coin-margined metric both, and adding the two counts it twice.

6. What the site does about volume it does not believe. This is the choice that produces the largest gaps between sites that agree on everything else, and the methods are different in kind, not degree:

  • Exclude markets by rule. CoinMarketCap publishes two exchange figures: Reported Volume, "volume from all spot markets", and Adjusted Volume, volume from spot markets "excluding markets with no fees and transaction mining". Under that rule a zero-fee promotion on an exchange's largest pair can lift its reported figure while taking that pair out of its adjusted one.
  • Exclude exchanges by list. Coin Metrics publishes reported spot volume over every market it covers and trusted spot volume over the exchanges in a trusted set drawn from the Talos Exchange Scorecard. Its documentation says the two are the same calculation over the same candles, that trusted is "always a subset of reported", that the set is versioned and point-in-time — "not restated when the constituent list changes" — and that a step in a long trusted series "can reflect a change in constituents rather than a change in market activity". Trusted volume is published for assets and pairs, not for exchanges, and futures and options carry no trusted variant at all.
  • Score instead of subtracting. CoinGecko attaches a Trust Score to each pair and each spot exchange rather than removing volume. The pair score considers order-book spread and ±2% depth, overall volume, trade frequency, outlier checks and web traffic; the exchange score combines liquidity, regulation, cybersecurity, past incidents and proof of reserves. Its methodology records a May 2026 revision, the Basilisk update, that "rebuilds Trust Score by replacing web traffic with direct volume and order book depth evaluation" — while the pair-level list on the same page, read on 4 October 2026, still names web traffic. Its API dropped the trade_volume_24h_btc_normalized field from the exchange endpoints from 16 June 2025, citing "changes in a third-party data source", which leaves trade_volume_24h_btc as the raw figure and per-ticker is_anomaly, is_stale, trust_score and a per-exchange has_trading_incentive flag as the signals.
  • Rank, and leave volume alone. Kaiko's Exchange Ranking scores centralised spot exchanges each quarter on governance (30%), security (20%), business (15%), liquidity (15%), technology (10%) and data quality (10%); volume appears only inside the liquidity score, beside depth at ±1%. CoinDesk Data's Exchange Benchmark, published twice a year — the November 2025 edition is dated 10 November 2025 — evaluates exchange risk on what it describes as more than 200 metrics. Both tell you which venues to weight; neither is a corrected volume figure.

Volume nobody traded

The sixth choice exists because volume can be produced without anyone changing their position. Buying from yourself, or from an account you control, prints a trade that moves no inventory and pays only whatever fee the venue charges. Where the fee is zero, or where a rebate or a transaction-mining token pays more than the fee, it pays to do it. That is why CoinMarketCap's adjusted figure removes exactly those two kinds of market, and why CoinGecko flags trading incentives at the exchange level.

How much of it there has been is a question with published, dated answers, and every one of them describes its own sample.

  • Bitwise, March 2019. In a presentation to SEC staff on 19 March 2019, entered in the public file for its bitcoin ETF application the next day, Bitwise Asset Management argued that "approximately 95%" of the bitcoin spot volume then shown by CoinMarketCap was "fake and/or non-economic". For 4–8 March 2019 it found 10 of the 81 exchanges it examined with what it called actual volume, about 273 million USD a day against roughly 6 billion USD reported, or 4.5%. Its tests are the useful part: trade size histograms that should decline smoothly with size, spreads that should anchor near zero rather than sit at a fixed width, and web traffic that should bear some relation to the volume claimed.
  • Cong, Li, Tang and Yang, 2022–2023. "Crypto Wash Trading" (NBER Working Paper 30783, December 2022; Management Science 69(11), 2023) applied statistical tests — first-significant-digit distributions, trade-size rounding and the tails of the trade-size distribution — to 29 exchanges. Regulated exchanges showed the patterns seen in other financial markets; on the unregulated ones the authors estimated wash trading "averaged over 70% of the reported volume", and documented that fabricated volume improved exchange rankings.
  • CoinMarketCap's own current position, stated on its methodology page, is that the incentivised pairs of 2017 to 2019 were "synonymous with washtrading", that it is "far less pervasive" now, and that pairs are excluded "only when they trigger clear statistical anomalies". That is the publisher describing its own rule, and it is the reason its figures and a stricter publisher's will drift apart.

Two enforcement actions show the mechanism from the inside, and they are the only places on this page where a named firm's conduct is described — in each case in the regulator's words and on the regulator's date.

On 19 March 2021 the CFTC issued an order filing and settling charges against Coinbase Inc. for reckless false, misleading or inaccurate reporting and for wash trading by a former employee on its GDAX platform. According to the order, between January 2015 and September 2018 two of Coinbase's own automated trading programs at times matched orders with one another, producing trades between accounts Coinbase owned, and that transaction information reached reporting services including CoinMarketCap and the publisher of the CME Bitcoin Real Time Index through Coinbase's API; the order finds that a former employee placed matching buy and sell orders in the Litecoin/Bitcoin pair over six weeks in August and September 2016. The civil penalty was 6.5 million USD. For a reader of volume data, the detail that matters is the path: the prints were published on an ordinary API and aggregated like any others.

On 9 October 2024 the SEC announced fraud charges against three firms it described as so-called market makers and nine individuals, alleging that token promoters hired two of the firms to provide "market-manipulation-as-a-service", and that the firms self-traded on popular crypto asset trading platforms with bots that, the SEC alleged, at times generated billions of dollars of artificial trading volume each day. These are allegations in complaints, not findings. They describe volume bought by a token's promoters and printed on trading platforms the release does not accuse of anything, which is the version of the problem that an exchange-level adjustment cannot see and a pair-level one sometimes can.

What you can do about it

Decide which question the number answers before choosing it. Reported volume answers "how much did this venue say it traded", which is the right input for market-share work and for following activity over time on one venue. Adjusted or trusted volume answers "how much of that should a valuation or a liquidity estimate believe". Coin Metrics frames its pair the same way: reported for market share and total activity, trusted wherever "an inflated denominator would distort the result". Mixing the two in one chart is the error, not choosing either.

When two figures disagree, check in this order — it is roughly the order of how much each explains: spot only or spot plus derivatives; contract size and unit on any derivative market; reported or adjusted; rolling 24 hours or a calendar day, and which time zone; which pairs, and whether flagged pairs are in or out; which side of the pair was converted and at whose price. Most disagreements are resolved by the first three.

For a dashboard, pick one source and print its label. "Spot, reported, rolling 24h, CoinGecko" is four words a reader needs and no chart supplies. The CoinGecko API returns the raw exchange figure in BTC plus per-ticker trust_score, is_anomaly and is_stale flags, which is enough to show a filtered figure next to the raw one. The CoinMarketCap API is the place to get CoinMarketCap's reported-versus-adjusted split; confirm which of the two the endpoint you call returns before labelling it. The two sites are compared in full in CoinGecko API vs CoinMarketCap API.

For a backtest or a liquidity filter, do not use a live 24-hour figure. It is a different window every time it is fetched and it is never point-in-time. Build daily volume from one vendor's candles on a fixed UTC boundary, keep spot and derivatives in separate columns, and store the unit and the contract size with every derivatives row. If you exclude suspect venues, use a point-in-time list: Coin Metrics documents that its trusted set is applied as it stood on each date rather than restated, which is what a backtest needs and what a hand-maintained exclusion list quietly fails to be.

Where you need to make the call yourself, start from trades. Kaiko and Tardis.dev sell exchange-level trade and order-book history, from which you can apply your own window, your own conversion and the tests in the research above — trade-size distributions, first-digit counts, spread behaviour. The procedure is in backfill tick-level trade history. Expect it to cost real money and real compute; it is the only version of the number whose every choice you made.

For capacity, read depth, not volume. How much you can trade without moving the price is a question about the order book, which is why both Kaiko's liquidity score and CoinGecko's pair score measure depth at ±1% or ±2% from the mid price. A venue with large volume and thin depth is the pattern every one of the methods above was built to flag.

Read the exchange rankings for what they are. Kaiko's quarterly ranking and CoinDesk Data's twice-yearly benchmark tell you which venues a careful index provider would weight, and that is useful for choosing which exchanges to include. Neither is a volume series, and neither should be read as a statement that any excluded venue's volume is false.

Tools this bears on

Cards in the catalogue where what is above changes the decision.

  • CoinGecko API

    Prices, market data and onchain DEX data for 18,000+ coins, via REST, websocket or MCP.

    $35/moFree tier

  • CoinMarketCap API

    Prices, rankings, DEX and derivatives data, metered by rows returned rather than by call.

    $35/moFree tier

  • Coin Metrics

    Institutional reference rates, exchange market data and network metrics behind one API.

    Free tier onlyFree tier

  • Kaiko Market Data API

    Tick history back to 2010, by REST, gRPC stream or cloud delivery.

    —

  • Tardis.dev

    Tick-by-tick order books, trades and options chains from 64 exchange feeds since 2019.

    $350/moFree tier

FAQ

Why does CoinGecko show a different 24-hour volume for an exchange than CoinMarketCap?

Because the two convert from different sides of each pair. CoinMarketCap takes the volume the exchange reports in quote units and prices it at its own reference rate for the quote asset; CoinGecko takes the base-asset volume and prices it at its own global average for the base coin. Add a different set of integrated pairs, a different exclusion rule and a snapshot taken at a different moment of a rolling window, and a gap of several per cent is the normal state.

What is the difference between reported and adjusted volume?

Reported volume is everything the exchange published. Adjusted or trusted volume is the same calculation over fewer markets — CoinMarketCap's adjusted exchange volume drops markets with no fees and transaction mining, and Coin Metrics' trusted volume keeps only exchanges in a published trusted set. Neither re-measures anything; both decide what to leave out.

Is most crypto exchange volume fake?

Published research has found that a large share was, in the samples it studied — a 2019 presentation to the SEC estimated that about 95% of reported bitcoin spot volume in one week of March 2019 was fake or non-economic, and a 2023 paper found wash trading averaging over 70% of reported volume on the unregulated exchanges in its sample. Those are measurements of particular samples on particular dates, not a figure for any exchange today.

Which volume figure should I use in a backtest?

One you can reproduce — daily volume built from one vendor's candles on a fixed UTC day boundary, spot and derivatives kept apart, and, if you filter suspect venues, a trusted set that is point-in-time rather than restated. A 24-hour figure scraped from an aggregator's live endpoint answers a different question every time it is fetched.

Sources

  1. Methodology — Trust Score, trading volume (exchange) and trading volume (global) — CoinGecko, read
  2. CoinGecko API changelog — removal of trade_volume_24h_btc_normalized — CoinGecko,
  3. CoinGecko API reference — Exchange Data by ID — CoinGecko, read
  4. Volume & Open Interest (Market Pair, Cryptoasset, Exchange, Aggregate) — CoinMarketCap, read
  5. Market data overview — Volume (reported and trusted volume, futures, options) — Coin Metrics, read
  6. Kaiko Exchange Ranking — Kaiko, read
  7. Exchange Benchmark — November 2025 — CoinDesk Data,
  8. Exchange Review May 2026 — CoinDesk Data,
  9. Get Ticker Information — Kraken, read
  10. Public REST API for Binance (spot) — 24hr ticker, rolling window and trading day statistics — Binance, read
  11. Deribit API specification, version 2.1.1 — contract_size, volume, volume_usd, volume_notional, open_interest — Deribit, read
  12. Memorandum on meeting with Bitwise Asset Management, File No. SR-NYSEArca-2019-01, with presentation — U.S. Securities and Exchange Commission, . Cited as a measurement of markets in March 2019, which it remains; it is not offered as a description of any exchange today.
  13. Crypto Wash Trading (NBER Working Paper 30783; published in Management Science 69(11), 2023) — National Bureau of Economic Research, . The peer-reviewed version appeared in 2023 and has not been withdrawn; its findings describe its own 2019 sample.
  14. CFTC Orders Coinbase Inc. to Pay $6.5 Million for False, Misleading, or Inaccurate Reporting and Wash Trading (Release 8369-21) — Commodity Futures Trading Commission, . A settled order; the findings stand as made on that date and describe conduct between 2015 and 2018.
  15. SEC Charges Three So-Called Market Makers and Nine Individuals in Crackdown on Manipulation of Crypto Assets (Release 2024-166) — U.S. Securities and Exchange Commission,

The catalogue next door

This page is background, not a listing. The products it bears on are in Crypto Market Data APIs, each filled in against the same schema, with the fields to narrow it yourself.

Last updated . Corrected in place: this is a reference page, not a dated post.

Report an error on this page

Quote the line and say what it should be.

The vendor’s page, filing or documentation that says otherwise.

Only if you want to hear back. Never published.

Read by a person. It fixes a fact and moves nothing else.