Methodology
VORTEX Methodology v1.1 · effective 2026-08-27
VORTEX is a transparent weighted composite. Every input, weight, clamp and fallback is published here.
Formula
clamp(x) = max(-1, min(1, x)) VORTEX = 100 × Σ (wᵢ × Sᵢ) range: −100 → +100 where wᵢ are the effective weights: stale sleeves get w = 0 and the remaining weights are rescaled so they sum to 1.0. Bias split (rescaled score, not a poll): Bullish = (VORTEX + 100) / 2 % Bearish = 100 − Bullish
Weights & scoring rules
| Funding Rates | 20% | clamp(-rate / 0.05) | Contrarian |
| ETF Flows | 15% | clamp(net$M / 500) | Directional |
| Fear & Greed | 10% | clamp((50 − idx) / 50) | Contrarian |
| Open Interest Δ24h | 10% | clamp(ΔOI% / 10) | Trend-confirming |
| Coinbase Premium | 10% | clamp(prem% / 0.5) | Directional |
| RSI (Daily 14) | 10% | clamp((50 − RSI) / 40) | Contrarian |
| VWAP Position | 10% | clamp(Δ / (0.02 × VWAP)) | Directional |
| Position vs POC Saturates at ±3% from POC; after large trends this sleeve is often maxed. | 8% | clamp(Δ / (0.03 × POC)) | Directional |
| Value Area Position | 7% | clamp(Δ / (0.5 × (VAH−VAL))) | Positional |
Weights are asserted to sum to 1.0 at module load.
Data sources (single source of truth)
- Spot price, daily candles, RSI(14), UTC session VWAP, 30D profileCoinbase Exchange → Kraken → BinanceFirst venue that answers within 3s serves the print; the venue used is published per metric.
- Funding rate, Open Interest Δ24hBybit perpetuals → OKX → Binance FuturesFunding is the last completed 8h settlement as of the snapshot.
- Coinbase PremiumCoinbase USD spot vs offshore USDT spot (OKX → Bybit → Kraken)Percentage difference between the onshore and offshore print.
- US spot ETF net flowFarside Investors (direct → mirror → text proxy)Latest fully settled session only; stale past 5 calendar days.
- Fear & Greedalternative.me indexFully public, no key.
source_venue is the venue that actually answered; fallbacks are used when the primary returns 403/429.
Volume profile — what it is and is not
The 30-day profile is an approximation: a 50-bin histogram of the last 30 daily candles, distributing each bar's volume across the bins it spans. It is not exchange-level VAP/VPIN or tick-by-tick volume-at-price. The POC is the highest-volume bin; the area expands outward from the POC until 70% of total volume is captured, defining VAH, VAL and VAM = (VAH + VAL) / 2. Levels are labelled “Approx. 30D profile (daily bars)” until a true VAP feed exists.
Session VWAP
“UTC session VWAP” is volume-weighted average price over 00:00 UTC → the snapshot time on the data_as_of date, computed from hourly candles at the serving venue.
ETF flow settlement
Only the latest fully populated Farside net-flow session is used — never the in-progress calendar-day row. Rows still containing empty issuer cells, or implausibly small totals while the table is filling, are rejected in favour of the previous complete print. The settled session date is published as data_date and badged “Settled · YYYY-MM-DD”. Past 5 calendar days the sleeve is marked stale.
Stale policy
A metric is stale when its fetch fails and no cached value younger than 36h exists. ETF flows are settled-only: the latest fully settled Farside session stays live (state 'lagging') while its session date is within 5 calendar days, so weekends and holidays never mark it stale. 1-2 stale metrics: score published with remaining weights renormalized to 1.0. 3+ stale metrics, or funding and ETF both stale: headline score suppressed, table retained. Stale metrics are omitted from the weighted sum - never scored as 0.
- Cached values younger than 36h keep a metric usable when a fetch fails.
- Failures are logged as metric + venue + HTTP status only, newest first, capped at 20.
- Status is exposed at
/api/public/v1/vortex/healthand on the health page.
Score bands
- |score| < 15 — Neutral
- 15 – 40 — Mild
- 40 – 70 — Strong
- > 70 — Extreme
Compute cycle
One compute per day, shortly after 01:00 UTC, once funding settlements and ETF prints finalize. Visitors and the public API always read that cached snapshot — page loads never trigger ingestion. Recompute is reachable only through an authenticated scheduler endpoint.
Language
VORTEX outputs a directional bias score — never a probability, never a trading signal, and never financial advice.