← Blog
Research

How much of Hyperliquid funding can you actually forecast?

Funding looks predictable because it is sticky — but persistence is not a forecast. Here is the small, validated surprise that is left, and how to use it.

Perpetual funding on Hyperliquid looks easy to predict. It's sticky: today's rate is a good guess for tomorrow's. But that stickiness is a trap. "Tomorrow ≈ today" is a base rate, not a forecast — anyone can compute it from free public data, and it doesn't tell you anything you didn't already know. The interesting question isn't whether funding persists. It's what's left after you subtract the persistence.

We call that leftover the innovation: innovation = funding − own 7-day trailing. It's the part of tomorrow's funding that today's level can't explain. If any of that surprise is forecastable, it's genuinely new information — and that's the only part worth paying for.

The finding

There's a small but real forecastable surprise. The chart below ranks BTC each day against the whole coin universe: the solid line is our forecast of the funding innovation as a cross-sectional percentile (0 = lowest across the universe, 100 = highest), and the dashed line is the percentile that actually realized the next day. When the forecast line is high, the realized line tends to follow. That co-movement is the signal.

Funding-innovation forecast vs. realized · BTC

Forecast (percentile) Realized next day

Volatility-innovation forecast vs. realized · BTC

Forecast (percentile) Realized next day

Within-day cross-sectional percentile — both lines share a fixed 0–100 scale, which also removes the level jumps you'd otherwise see when the model refits each month. Sample: BTC, 2026-03..2026-05.

Why it's real, not curve-fit

A pretty in-sample chart proves nothing. The number that matters is the incremental information coefficient — how much predictive rank-correlation our factor adds on top of the free base rate — measured out-of-sample. Here it is:

+0.089

funding-1d incremental IC

replicated 5/5 folds (t≈14.6)

+0.024

volatility-1d incremental IC

replicated out-of-window

≈0

forward-return IC (neg. control)

pure funding, no price/beta leak

Those numbers survive a stack of deliberately hostile gates. We forecast the innovation, not the level — because forecasting the level is a con: funding and volatility levels are near-static coin traits, so a naive cross-sectional correlation is inflated by "which coin is this" rather than any real timing skill. We strip out market beta and force the factor to be orthogonal to the obvious exposures. We measure it walk-forward, only ever scoring days the model was fit before. We run leave-coins-out folds, so the reported skill is on coins the model never saw in training — it generalises, it isn't memorising a coin list. And the tell-tale: our negative control, forward price return, comes back at ≈0. If our "funding" factor were secretly a directional bet, that control would light up. It doesn't. The funding signal is a funding signal.

Why does an IC of +0.089 count as a product when it sounds tiny? Grinold's law: IR ≈ IC × √breadth. A small edge applied independently across a wide universe of coins, every day, compounds into a real information ratio. Breadth is the multiplier — and a whole-universe daily cross-section is exactly where breadth lives.

How to use it

This is a feature, not a turnkey number. You don't trade the percentile directly. You start from the free base rate — persistence — and stack our factor on top as the forecastable surprise, inside your own model:

# Funding is sticky, so start from the free base rate: persistence.
base = funding_today                      # "tomorrow ≈ today" — free, and hard to beat

# Tessera's factor forecasts the *innovation* — the part persistence can't see.
# Fold it in as one feature among your own; it is orthogonal by construction.
X = features.join(tessera_funding_factor)  # gold_positioning_funding_factors_1d
model.fit(X, fwd_funding_innovation)

forecast = base + model.predict(X_next)

Because the factor is orthogonal to persistence and to beta by construction, it adds information your existing model doesn't already have, rather than double-counting what you can get for free.

What we're not claiming

Straight talk on the limits. It's a stacked feature, not a standalone trading signal — sized to add information to your model, not to be a buy/sell button. Secondly, the HIP-3 commodity markets (oil, metals) ship as clean data, not a validated signal — their history is still too short for us to stand behind a forecast, so we won't pretend otherwise.

Try it

The funding and volatility forecasts are free on BTC, ETH, SOL and HYPE — enough to wire the feature into your own model and see it move. See the full column dictionary for gold_positioning_funding_factors_1d, then check pricing for the full universe.