Skip to content

Research notes

Crypto aggregate funding rates: weighting and interval traps

A three-market worksheet produces a negative equal average and a positive OI-weighted rate. Check periods, notional units, clocks and coverage before reading the sign.

Three ivory ribbons of different widths pass through ceramic loops into a lime-lined bowl on a black surface.
Illustration for research notes; examples in this article are educational.

An open interest weighted crypto funding rate averages comparable perpetual funding rates using each market's share of notional open interest. Convert rates to the same payment period, standardize OI units and align rate status and timestamps before weighting. The result describes a chosen set of markets; it is not the funding rate an exchange will charge your position.

A positive aggregate can coexist with negative funding on most of its constituent markets. That can be a valid consequence of weighting, or a symptom of incompatible inputs. Reconstruct the calculation before interpreting its sign.

Decide what the average represents

An equal-weighted average gives each eligible instrument the same influence. An open-interest-weighted average gives a larger influence to instruments with more outstanding notional exposure. Neither is automatically the correct answer: they describe different questions.

For a declared universe of comparable perpetuals, use equal average = sum(comparable rates) / eligible market count. For the weighted version, use weight_i = notional OI_i / total eligible notional OI, then weighted average = sum(weight_i × comparable rate_i).

Choose the unit of membership first. An average across three BTC contracts describes cross-venue BTC funding. An average across BTC, ETH and smaller assets describes a broader, differently concentrated universe. If one asset has several quote-currency contracts, an equal average across contracts gives it several votes. An equal average across assets requires an additional aggregation step.

Provider labels are a starting point. CoinGlass, for example, documents an endpoint returning OI-weighted funding in OHLC form. That endpoint page alone does not provide every rule needed to reproduce its membership and normalization. The transparent calculation below is an educational construction, not a claimed replication of that series. CoinGlass's OI-weighted funding endpoint.

Normalize the payment period before weighting

A rate of +0.010% per eight hours and a rate of +0.010% per hour are different measurements. Putting both numbers into one percentage column does not make them comparable.

For this article's simple eight-hour equivalent, calculate r_8h = r_per_payment × 8 / payment_period_hours. Store rates consistently: a decimal fraction of 0.0001 is 0.01%, which is one basis point. Mixing decimal and percentage representations creates a factor-of-100 error before weighting even starts.

Use the payment period rather than assuming that every field named “interval” means the same thing. Coin Metrics distinguishes the duration a funding rate applies to from the window of input data used to calculate it. Its methodology scales rates to a common time basis by simple multiplication. Its sign convention, used here, is positive when longs pay shorts and negative when shorts pay longs. Coin Metrics' funding-rate units and timing methodology.

There is another trap: a displayed or calculated rate may already use a different basis from the payment frequency. Hyperliquid documents an eight-hour funding formula with hourly payments at one eighth of the computed rate. This does not establish the basis of every dashboard or API field referencing Hyperliquid. Read the field definition before multiplying an hourly-looking value by eight. Hyperliquid's funding technical details.

Contract schedules also belong in the data. Bybit's instrument information supplies fundingInterval in minutes. Save the applicable schedule with the observation; a current instrument response cannot by itself establish an old contract's payment period. Bybit's instrument specification fields.

Work through three hypothetical markets

Assume three fictional USDT-settled linear perpetual markets reference the same underlying asset. Each row contains a settled rate ending at 08:00 UTC and a synchronized, single-sided OI value already expressed in USDT notional. All quantities below are invented.

MarketLatest settled ratePayment periodEight-hour equivalentSingle-sided OIOI weight
A+0.010%8 hours+0.010%80 million USDT80%
B−0.003%1 hour−0.024%15 million USDT15%
C−0.006%4 hours−0.012%5 million USDT5%

Normalize B as −0.003% × 8 = −0.024%. Normalize C as −0.006% × 2 = −0.012%. A needs no conversion. The equal-weighted result is (0.010% − 0.024% − 0.012%) / 3 = −0.008667%, rounded.

The OI-weighted result is 0.80 × 0.010% + 0.15 × (−0.024%) + 0.05 × (−0.012%) = +0.0038%. Its contributions are +0.0080, −0.0036 and −0.0006 percentage points. The weights sum to one, and both averages lie between the smallest and largest normalized rates.

With one vote per market, B and C's negative rates outweigh A's positive rate. The weighted average is positive because A holds 80% of the eligible notional. There is no contradiction.

Skipping normalization gives a misleading raw equal average of (0.010% − 0.003% − 0.006%) / 3 = +0.000333%. Its positive sign reverses after the periods are aligned. The raw OI-weighted number would also be wrong: +0.00725%, rather than +0.0038% on the declared eight-hour basis.

These are equivalent-rate snapshots. B's latest one-hour rate does not reveal all eight hourly settlements in the preceding eight hours. To measure actual funding over that common historical window, retrieve each event within it and apply the appropriate position value and eligibility at each event. Multiplying the latest hourly rate by eight cannot reconstruct missing history.

Put every OI weight on the same footing

Weights must use a comparable unit and side-counting convention. Do not add a BTC quantity from one market to a USDT notional from another. Nor should margin collateral, trading volume or account counts substitute for outstanding contract notional.

Bybit's OI documentation illustrates why field names matter: openInterest counts both sides, while singleOpenInterest counts one side, and units differ between linear and inverse products. Those definitions apply to those fields. They are not permission to halve every provider's OI value; a provider may already have normalized it. Bybit's open-interest definitions.

For a research composite, declare one notional currency, the price used for conversion and a consistent one-side or two-side policy. If using different settlement currencies, record the conversion rather than treating every stablecoin as an identical dollar. Apply the documented contract multiplier and valuation method for each product.

The open interest versus volume guide explains the underlying inventory distinction. Here, its practical consequence is that a price-driven notional change can alter a market's weight even when its outstanding base quantity is unchanged.

Hold the table's normalized rates fixed and change the hypothetical OI weights to 50%, 30% and 20%. The new weighted result becomes 0.50 × 0.010% − 0.30 × 0.024% − 0.20 × 0.012% = −0.0046%. The composite changes sign without any constituent funding rate changing. Report weight changes alongside rate changes before describing that move as a market-wide funding reversal.

Keep rate status, event time and collection time separate

A latest estimate for a future payment and a settled historical rate answer different questions. Do not silently mix them in one cross-venue average. The predicted versus realized funding guide covers that event-level distinction; the aggregation rule is to choose one status and label it.

Bybit's funding history returns a funding-rate timestamp and explicitly describes the latest settled event rather than the time the response was retrieved. Bybit's funding history documentation. Coin Metrics' timestamp definitions likewise separate an exchange event time from database storage time. A history row collected later cannot automatically become a signal that was available earlier.

Specify the allowable difference between OI and rate observation times. Reject or flag stale inputs using a written rule. The market-data freshness guide provides the wider clock checks. Forward-filling an old value should remain visible as a dated assumption.

Missing values also change the denominator. Suppose A's rate is missing while all three OI values remain known. Excluding A leaves only 20% of the original notional covered. Renormalizing B and C produces (15 × −0.024% + 5 × −0.012%) / 20 = −0.021%.

That negative value can be computed correctly while being a poor substitute for the complete composite. Publish the coverage loss and excluded market. Do not replace A's missing rate with zero, which would invent an observation and produce yet another number.

Use a compact validation worksheet

CheckRecord before publishingFailure that requires review
UniverseIncluded venue, instrument and asset list; selection dateMembership changed without explanation
Rate meaningRaw field, decimal or percent unit, estimate or settled statusDifferent statuses or unit scales mixed
Time basisPayment period and conversion already applied by providerHourly values rescaled twice or candle duration used as payment period
OI weightRaw field, side count, notional currency and conversion priceQuantity mixed with notional, or one market double-counted
ClocksEvent time, OI source time, collection time and freshness thresholdStale weights treated as synchronized observations
CoverageEligible count, covered notional and exclusionsMissing rates replaced by zero or coverage loss hidden
ArithmeticWeight sum, minimum/maximum range and per-market contributionResult outside the range with nonnegative weights

Preserve the unrounded input rows as well as the final displayed number. A small contribution can disappear after display rounding, making later reconciliation harder.

The composite measures a selected funding average, not participation in a price move. Use the crypto market breadth worksheet for questions about how many assets participate. If the question is whether one asset outperformed a benchmark, the relative strength versus RSI comparison uses price relationships rather than a funding denominator.

Finally, use the actual venue's events and your actual position records to calculate account funding. A hypothetical 10,000 USDT long held through one eligible B payment would receive 0.30 USDT at −0.003%, under the example's assumptions. Multiplying that position by the positive eight-hour composite would describe neither that event nor that venue.

Save a report sentence that can be checked: “The three-market settled-rate snapshot is +0.0038% per eight-hour equivalent, weighted by synchronized single-sided USDT notional OI; its equal-weighted counterpart is −0.008667%.” Attach the rows and coverage evidence that make that sentence true.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.