Funding divergence
funding_divergenceRank markets by how far their funding has diverged from a benchmark (default ETH) over a trailing window. Pick bar (1d, the default, or 1h for completed hours) to read completed days or completed hours. day defaults to the last complete interval. metric=rate compares mean funding over the window; metric=cum_funding_spread compares how far a market's cumulative funding level travelled inside the window (its high minus its low, so never negative) — that is not the funding the window accumulated, which is funding_paid_7d (or funding_rate_7d_avg times the window's completed-interval count). Returns the most diverged in each direction, each row with usd_volume_7d_avg so a spread can be sized; pass min_usd_volume_7d_avg (USD/day) to exclude markets too illiquid to trade the divergence in. Markets with no funding reading are excluded from both lists. Descriptive only.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "funding_divergence"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | No | `1d` (the default) for completed UTC days, `1h` for completed UTC hours. An interval, at either grain, is stamped by the instant it **closes** — an hourly `…T09:00:00Z` is the hour that ended at 09:00. | |
| day | No | The day or hour to rank as of: `YYYY-MM-DD` or `latest` at `bar: 1d`, a completed `YYYY-MM-DDTHH:00:00Z` (the hour that *ended* there) or `latest` at `bar: 1h`. | |
| coins | No | Restrict to these markets. | |
| scope | No | `crypto` (the default), `hip3`, or `all`. | |
| top_n | No | Markets per ranked list, 1..100 (values outside are clamped to the nearest bound and the response says so). Defaults to 10. | |
| metric | No | `rate` (the default) ranks each market's mean funding over the window minus the benchmark's; `cum_funding_spread` ranks the **spread of the cumulative funding level** over the window — its high minus its low, so always non-negative — minus the benchmark's. That is not the funding the window accumulated: `cum_funding` is a running total, so a market whose level retraced has a large spread and a *negative* accumulation (and one that reversed inside the window has a spread several times its true accumulation). Measured 2026-10-13 over 34 markets and the trailing 168 hours, the expression below reproduced the served value exactly, while `SUM(funding_paid)` over the same window disagreed in sign for 11 of them (TRX +0.00440 vs −0.00445) and by up to 100× (CASHCAT 0.2050 vs 0.0020). The accumulation is `funding_paid_7d`, or equivalently `funding_rate_7d_avg` × the window's completed-interval count — 7 intervals at the daily grain and 168 at the hourly one. | |
| benchmark | No | The market whose funding is the yardstick. Defaults to ETH. | |
| window_days | No | Length of the trailing window in days, 1..365. Defaults to 7. | |
| min_usd_volume_7d_avg | No | Drop markets whose average **daily** traded notional over the divergence window is below this value, in USD/day at either bar. Each row carries that figure as `usd_volume_7d_avg`, so the floor decides which spreads are tradeable rather than which are largest. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | The grain this answer was computed at: `1d` or `1h`. | |
| as_of | Yes | ||
| notes | Yes | ||
| scope | Yes | ||
| metric | Yes | ||
| source | Yes | ||
| benchmark | Yes | ||
| truncated | Yes | ||
| window_days | Yes | ||
| published_at | No | ||
| top_negative | Yes | The largest divergences toward the benchmark's opposite, most extreme first. | |
| top_positive | Yes | The largest divergences away from the benchmark, most extreme first. | |
| bar_age_hours | Yes | ||
| matched_count | Yes | Markets that had a funding reading in the window. Markets without one are excluded from both lists and from this count — a missing reading must never appear as an extreme. | |
| visible_count | Yes | Markets in your plan's slice on this interval, before any filter you passed. | |
| eligible_count | Yes | Markets left after your explicit market filter. | |
| benchmark_value | Yes | The benchmark's own value for the metric. |