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.
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.
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.
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.
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.
| Input | Endpoint | Range | Weight | Status |
|---|---|---|---|---|
| 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 |
| Input | Endpoint | Range | Weight | Status |
|---|---|---|---|---|
| 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 |
| Input | Endpoint | Scaling | Weight | Status |
|---|---|---|---|---|
| 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.
| Input | Endpoint | Scaling | Weight | Status |
|---|---|---|---|---|
| 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 = 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.
Midlines at 50 on both axes, on the same basis as the scores themselves.
| Money < 50 | Money ≥ 50 | |
|---|---|---|
| Voice ≥ 50 | Chatter without conviction | Loud and leveraged |
| Voice < 50 | Apathy | Quiet, but leveraged |
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.
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 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.
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.
| Endpoint | Path | Axis | Access | Calls | Credits |
|---|---|---|---|---|---|
| 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 | — | — |
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.
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.
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.