← Data catalog

Funding & volatility forecast (daily factors)

Free
gold_positioning_funding_factors_1d

daily scores, partitioned per (coin, month)

gold_positioning_funding_factors_1d is a daily Hyperliquid funding-rate and volatility forecast: each coin is ranked on the part of tomorrow's funding and realized vol that current funding and simple persistence can't explain, plus the beta-stripped factor pack behind the ranking. Free on BTC, ETH, SOL and HYPE.

The free coins — BTC, ETH, SOL and HYPE — are the majors whose funding you can trade directly on Pendle Boros, so the forecast lines up one-to-one with a funding-rate position there. Pro extends the same scores to every coin, including HIP-3 markets.

What you'd use it for: Adding a forecastable funding- or volatility-surprise edge to your own cross-sectional model.

A forecast feature, not a turnkey trade — pair it with current funding (gold_funding_1h) for the base rate; this adds the surprise on top. The factor_* columns are the raw cross-sectional rank-scores; resid_* is the beta-residualized backbone; realized_* lets you score the forecast yourself. The headline IC numbers are out-of-sample and measured leave-coins-out, so a coin's static funding level can't flatter them — strong and clean on the crypto majors; the HIP-3 commodity markets aren't forecastable yet (short history) and ship as data, not as a validated signal.

Timing · day (1d)

`day` is the UTC day the forecast is FOR. The factor_* scores are built only from information available before `day` and predict it forward — treat them as knowable at the start of `day`. The realized_* columns are the CONTEMPORANEOUS outcomes measured ON `day` (the answer key) and are NOT knowable in advance: line factor_* up against a later day's realized_* to grade the forecast, and never use realized_* as a same-day signal. resid_* are the point-in-time feature backbone.

+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

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 (0 = lowest forecast / realized innovation across the universe, 100 = highest). When the solid forecast line is high, the dashed realized line tends to follow — that co-movement is the signal. Sample: BTC, 2026-03..2026-05.

Data dictionary

Forecast scores

window starting at timestamp
Column Type What it means
day timestamp[us] The day the forecast is for (UTC midnight). How it's computed: UTC day (midnight) the factors are scored for.
coin string Which market this row scores. HIP-3 markets carry a deployer prefix. How it's computed: HL coin symbol (HIP-3 prefixed, e.g. xyz:NVDA).
factor_funding_innov_1d float64 Tomorrow's funding-surprise forecast, as a cross-sectional rank: how far above or below its own trend this coin's funding is likely to move. High means the model expects an unusually large funding move — the part you couldn't guess from today's rate. How it's computed: Ridge forecast factor for fwd_funding_1d_innov (rank-score; higher = larger forecast innovation).
factor_funding_innov_7d float64 The same funding-surprise forecast over the next week instead of the next day. How it's computed: Ridge forecast factor for fwd_funding_7d_innov (rank-score; higher = larger forecast innovation).
factor_rv_innov_1d float64 Tomorrow's volatility-surprise forecast, as a cross-sectional rank: which coins are set up to be more (or less) volatile than their recent norm. How it's computed: Ridge forecast factor for fwd_rv_1d_innov (rank-score; higher = larger forecast innovation).
factor_rv_innov_7d float64 The same volatility-surprise forecast over the next week. How it's computed: Ridge forecast factor for fwd_rv_7d_innov (rank-score; higher = larger forecast innovation).

Backbone factors — resid_<feature> (25 columns, beta/size-residualized rank-z)

snapshot · as of timestamp

The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score.

Column Type What it means
resid_account_ls_ratio nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of account_ls_ratio.
resid_top10_long_share nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of top10_long_share.
resid_top10_short_share nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of top10_short_share.
resid_concentration_skew nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of concentration_skew.
resid_hhi_gross nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of hhi_gross.
resid_whale_long_account_share nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of whale_long_account_share.
resid_whale_net_position nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of whale_net_position.
resid_n_whale_accounts nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of n_whale_accounts.
resid_d_open_interest_rel nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of d_open_interest_rel.
resid_new_long_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of new_long_frac.
resid_new_short_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of new_short_frac.
resid_close_long_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of close_long_frac.
resid_close_short_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of close_short_frac.
resid_flip_l2s_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of flip_l2s_frac.
resid_flip_s2l_frac nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of flip_s2l_frac.
resid_net_taker_open_rel nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of net_taker_open_rel.
resid_oi_open_close_ratio nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of oi_open_close_ratio.
resid_flow_vs_snapshot_resid nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of flow_vs_snapshot_resid.
resid_log_oi nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of log_oi.
resid_oi_z_30d nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of oi_z_30d.
resid_funding_rate nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of funding_rate.
resid_funding_annualized nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of funding_annualized.
resid_funding_chg_7d nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of funding_chg_7d.
resid_funding_vol_14d nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of funding_vol_14d.
resid_cum_funding_30d nullable float64 The cleaned-up ingredients behind the forecast: each raw positioning, flow, or funding feature ranked across coins for the day and stripped of its price/size beta, so what's left is the coin-specific signal rather than 'big coins move together'. Nullable when a feature isn't available that day. Feed these into your own model if you want to build on the backbone directly rather than the packaged score. How it's computed: Beta/size-residualized, day-cross-sectional rank-z of cum_funding_30d.

Realized innovations — to score the forecast yourself

measured over the period
Column Type What it means
realized_funding_innov nullable float64 What the funding surprise actually turned out to be on this day. Line it up one day later against factor_funding_innov to grade the forecast on your own data. How it's computed: Realized funding innovation at day t (funding_rate − own 7d trailing).
realized_rv_innov nullable float64 What the volatility surprise actually turned out to be — the answer key for the rv forecast. How it's computed: Realized RV innovation at day t (rv_day − own 7d trailing).

Provenance

key / provenance
Column Type What it means
model_version string Which frozen model version produced this row, so results are reproducible as the model is refit over time. How it's computed: Version of the frozen ridge model that produced this row (fit cutoff month).
scored boolean True when this row carries a real forecast. The published coin set is fixed for the whole month, so every coin gets a row every day; on days a coin had no data or the cross-section was too thin to rank, the row is kept but marked false and the score columns are null — so you always see the same coins and can tell a genuine forecast from a gap. How it's computed: True if a forecast was computed for this (coin, day). False for a row padded to keep the frozen published universe × day grid dense when the coin had no data / the day's cross-section was too thin — the factor_*, resid_* and realized_* columns are then null.