Divergencerecording since 13 Sep, 1,454 samples

Method

This tool measures the gap between what the crypto market is saying and what it has committed money to. Both halves come from the CoinMarketCap API. Everything below states exactly how each number is produced, so any figure on this site can be checked against CoinMarketCap directly.

What this is not

No advice, no recommendations, no forecasts. Every output describes a condition measured at a recorded moment. A quadrant is a label for where a point currently sits — it is not a rating and it implies no action. If a sentence anywhere on this site points at the future, it is a bug.

What the plan permits, and what it costs the method

The API key behind this deployment is on CoinMarketCap's Basic plan. Measured against the live API rather than read off a pricing page: ten of the twenty endpoints in the catalogue are callable and ten answer HTTP 403.

The Voice axis takes the damage. Trending, most-visited, community and content are all forbidden, which leaves the fear and greed index — one input, updated once a day. So Voice steps daily while Money moves every sample, and the flat stretches on the market chart are that, not a market that went quiet. Per asset it is worse: there is no attention endpoint at all, and the proxy used instead is described in the table below and labelled as the weakest number in the product.

The forbidden inputs are still declared in the method. They carry their intended weights, they are shown below marked unavailable, and the day the plan permits them they begin contributing with the method version bumped so the change is visible in the recorded data rather than rewriting it.

What the Money axis can and cannot see

This axis was designed around funding rates, open interest and liquidations, and for one day it did not have them: 38 candidate paths were probed, every one came back absent, and the axis was rebuilt around turnover as a substitute — money moving standing in for money committed and leveraged. That probe was wrong. It swept /v1/ to /v4/ and the derivatives family lives under /v5/. Open interest, funding rate and liquidations are real, reachable and callable on this plan, and they are the three heaviest inputs in the table below.

The substitutes they displaced are kept at weight zero rather than deleted, and every score row records the method version that produced it, so what this axis used to measure stays legible next to what it measures now.

What it still cannot see: open interest and funding are BTC only. The derivatives endpoint takes one symbol per call, and a hundred assets would be a hundred credits a sample against a 15,000-credit month. BTC is the standard benchmark for market-wide leverage, but a build-up led by altcoins reaches this axis late and muted.

The inputs

Each raw input is scaled to 0–100, then weighted. Inputs with no data are dropped and the surviving weights are renormalised over what remains — a missing input is never counted as a zero, because zero is a measurement of a quiet market and absence is a measurement of nothing. Each score records how many of its declared inputs it actually saw.

Voice — market-wide

InputEndpointRangeWeightStatus
Fear and greed index CoinMarketCap's own sentiment index, already on a 0-100 scale, so the fixed range is the scale itself and not a judgement call. Updated once a day. fear_and_greed 0 → 100 index 0-100 0.40 in use
Trending rank churn How far the trending list reordered since the previous sample. Forbidden on this plan. community_trending_token 0 → 40 positions moved 0.35 403 on this plan
Community post volume Post volume across the community feed. Forbidden on this plan. content_latest 0 → 100 posts per sample 0.25 403 on this plan

Money — market-wide

InputEndpointRangeWeightStatus
Open interest Dollars committed to derivative positions on BTC right now, summed across every venue CoinMarketCap tracks. Measured at $76.6bn on 13 Sep 2026. A level, not a flow: this is the number the axis was always supposed to be built on. derivatives_pairs 40000000000 → 120000000000 USD held in open positions 0.30 in use
Funding rate What longs pay shorts to keep a perpetual open, weighted by each pair's open interest. Positive means the long side is crowded enough to pay for the privilege. Measured at +0.0043% on 13 Sep 2026. derivatives_pairs -0.0003 → 0.0008 per funding interval 0.20 in use
Liquidations, 24h Positions closed by the exchange rather than by their owner, across the top 100 assets. Money that was committed and then taken off the table involuntarily — the clearest evidence in the API that leverage was actually there. liquidations 50000000 → 1500000000 USD closed by force 0.20 in use
Open interest vs volume Open interest over 24h derivative volume: how much of the day's trading turned into positions still being held rather than churn. High means the market is carrying what it bought. derivatives_pairs 0.3 → 1.5 ratio 0.15 in use
Turnover Total 24h volume over total market cap: money moving relative to the size of the thing it is moving in. Demoted from the headline input now that the axis can measure commitment directly, but still the broadest measure of activity. global_metrics 0.005 → 0.05 volume / market cap 0.15 in use
Derivative share of activity Derivative volume against spot volume. The closest thing to a leverage reading available before the real ones were found. Superseded by open interest, which measures positions held rather than contracts traded. global_metrics 2 → 12 x spot volume 0.00 declared, weight 0
Stablecoin share of volume A proxy for how much of the day's volume was risk rather than rotation. Superseded: funding and open interest answer that directly. global_metrics 0.5 → 1.2 share of total volume, inverted 0.00 declared, weight 0
Exchange reserve movement Movement in the reserve held on the tracked exchange. Superseded by liquidations, which measure positioning being unwound rather than balances being shuffled. exchange_assets 0 → 0.04 absolute 24h change 0.00 declared, weight 0
Derivative venue concentration Concentration of derivative volume across venues — the replacement for the forbidden spot equivalent. Recorded every hour but not yet scored: the reference range should come from measured history, not instinct. derivatives_exchanges 0.02 → 0.3 HHI 0.00 declared, weight 0
Spot venue concentration Concentration of spot volume across venues. Forbidden on this plan; kept so the designed input is visible rather than silently absent. exchange_listings 0.05 → 0.35 HHI 0.00 declared, weight 0

Voice — per asset

InputEndpointScalingWeightStatus
Trending rank Position on the trending and most-visited lists. Inverted: rank 1 is loudest. Forbidden on this plan. trending_most_visited rank vs universe position, inverted 0.60 403 on this plan
Size of 24h move How far the asset moved today, direction discarded. A proxy for attention, used because every attention endpoint is forbidden on this plan. It is derived from price, so it is partly contaminated by the Money axis; it is the weakest input in the product and it is labelled as such wherever it is shown. listings_latest rank vs universe %, absolute 0.40 in use

These inputs are never min-max scaled: each is ranked against the same input across the rest of the tracked universe at the same instant, so there is no floor or ceiling to state. Why per asset differs.

Money — per asset

InputEndpointScalingWeightStatus
Turnover Volume over market cap, so a large asset and a small one are on the same scale. The single most informative number the Money axis has per asset. listings_latest rank vs universe volume / market cap 0.60 in use
Volume change, 24h Whether the money moving in this asset is more or less than yesterday. Signed, unlike the Voice proxy: money arriving and money leaving are different facts. listings_latest rank vs universe % 0.40 in use

These inputs are never min-max scaled: each is ranked against the same input across the rest of the tracked universe at the same instant, so there is no floor or ceiling to state. Why per asset differs.

Divergence

divergence = money − voice

Signed, from −100 to +100. Positive means money committed is running ahead of narrative; negative means narrative is running ahead of money committed. The headline figure on the market screen is the magnitude, with the direction stated in the sentence beside it.

Quadrants

Midlines at 50 on both axes, on the same basis as the scores themselves.

Money < 50Money ≥ 50
Voice ≥ 50Chatter without convictionLoud and leveraged
Voice < 50ApathyQuiet, but leveraged

Normalisation, and the two bases

Which basis produced a given score is stored on the row and never inferred. Scores from different bases are not strictly comparable, and this page says so rather than letting one chart quietly mix them.

Market-wide: fixed ranges until an axis has 7 days behind it, then percentile rank

Percentile rank against trailing history is meaningless when there is no history — the first day's scores would be ranked against a handful of samples and the plot would jump between 0 and 100 for no reason. So each input is min-max scaled against the hand-set reference range in the tables above until 7 days of history exist, and after that against its percentile rank within a trailing window of its own history (or all the history there is, whichever is shorter).

The window is per input, because the history available is per input. The fear and greed index is ranked against 500 days — what /v3/fear-and-greed/historical returns, and what was backfilled. Every other input is ranked against 30 days, which for this deployment means all of them, because nothing else has a past. Ranking the backfilled input against 30 days would use a fraction of the history fetched and give a once-daily input a percentile resolution of 3.3 points.

The switchover happens per axis, and the two axes do not reach it together. CoinMarketCap publishes a historical endpoint for the fear and greed index and for nothing else this product measures, so the Voice axis was backfilled with /v3/fear-and-greed/historical and reached percentile rank immediately, while every Money input has only what this deployment recorded — because there is no way to obtain any more of it. Each row therefore stores the basis of each axis separately, and the row's summary basis reports the weaker of the two, so a half-established row is never advertised as fully established.

The most recent score used percentile for Voice and fixed for Money.

That asymmetry is the argument for the recorder, stated more precisely than "none of this can be fetched later": Voice can be backfilled 500 days and Money cannot be backfilled at all. The irreplaceable half of this dataset is the Money axis.

The Money axis has readings from 13 Sep, 10:20 UTC, so it reaches percentile rank on 20 September 2026, 10:20 UTC.

Per asset: ranked against the universe, not against its own past

Per-asset scores use a third basis, recorded as cross_section. Each asset's inputs are ranked against the rest of the tracked universe at the same instant rather than against that asset's own history: turnover in the 92nd percentile of the top 200 right now. That is the question a screener is actually asked, and it needs no banked history, so the table works from the first sample. It is a different measurement from the market chart and the two are never plotted together.

Endpoints used

Measured with a real key against the live API. ok means HTTP 200 with a data block; 403 means the path exists and this plan may not call it.

EndpointPathAxisAccess CallsCredits
key_infocredits used and remaining this month /v1/key/info support ok 91 0
global_metricstotal market cap, total volume, BTC dominance, stablecoin and derivative volume /v1/global-metrics/quotes/latest support ok 341 341
listings_latesttop N by market cap: id, symbol, rank, volume, market cap /v1/cryptocurrency/listings/latest support ok 174 174
fear_and_greedcurrent index value 0-100 /v3/fear-and-greed/latest voice ok 35 35
fear_and_greed_historicalindex history — would backfill the Voice axis before recording started /v3/fear-and-greed/historical voice ok 1 1
community_trending_topictrending topic list and rank /v1/community/trending/topic voice 403
community_trending_tokentrending token list and rank /v1/community/trending/token voice 403
trending_most_visitedmost-viewed assets on coinmarketcap.com /v1/cryptocurrency/trending/most-visited voice 403
trending_latesttrending search list /v1/cryptocurrency/trending/latest voice 403
trending_gainers_loserslargest movers, as an attention proxy /v1/cryptocurrency/trending/gainers-losers voice 403
content_latestpost volume across the community feed /v1/content/latest voice 403
content_posts_toptop posts for one asset, with comment and like counts /v1/content/posts/top voice 403
derivatives_pairsopen interest, funding rate and basis per derivative pair /v5/cryptocurrency/derivatives/market-pairs/list/latest money ok 333 333
liquidationslong and short liquidations at 1h, 4h and 24h, per asset /v5/derivatives/liquidations/cryptocurrency/list/latest money ok 333 333
derivatives_exchangesper-venue derivative volume and open interest, for concentration /v5/exchange/derivatives/list money ok
quotes_latestvolume_24h, market_cap, volume_change_24h per asset — turnover /v2/cryptocurrency/quotes/latest money ok 97 97
exchange_listingsper-exchange 24h volume, for concentration /v1/exchange/listings/latest money 403
exchange_assetsexchange wallet balances, for reserve movement /v1/exchange/assets money ok 49 49
market_pairs_derivativesderivative pair volume for one asset /v2/cryptocurrency/market-pairs/latest money 403
price_performancerolling performance per asset /v2/cryptocurrency/price-performance-stats/latest money 403

Absent from the API entirely

Not a plan restriction — these paths do not resolve at any version, and what the Money axis now measures instead is in the table above: /v1/derivatives/listings/latest, /v1/derivatives/funding-rate/latest, /v1/derivatives/open-interest/latest, /v1/derivatives/liquidations/latest.

The derivatives measurements themselves are not absent — these 4 /v1/ spellings of them are. The working paths are the /v5/ entries in the table above, and mistaking the first fact for the second cost this axis a method version.

Recording health

Live from raw_samples and fetch_log. Every fetch attempt is logged, including the ones that failed, which is what makes the gap handling honest: a missed window is shown as a gap and the charts break the line rather than interpolating across it.

Raw samples
1,454
Recording since
13 Sep, 10:20 UTC
Latest sample
8 min ago
Fetch attempts
1,454
Failure rate
0.00%
Longest gap
24 min
Scores computed
539
Credits consumed
1,363

Version and provenance

Method version 3. Every score row records the method version and the basis that produced it, so changing a weight adds a parallel series rather than rewriting the one already recorded.

Raw API responses are stored verbatim alongside every derived figure, which means the parsing and the weighting can both be corrected later without losing a single sample. The raw_sample_id behind any number on this site is recorded in the database next to it.