dhawal.orgWarming the tape · 4%
ES··NQ··CL··GC··BTC··VIX··
MKT··
REGIME··
delayed
dhawal.org
Methodology

How the numbers are made.

Every formula on the site collected in one place, every source named with its cadence, and the chart grammar stated. If a number appears on a dashboard here, this page says how it was computed and where its inputs came from.

01 · Doctrine

Chart grammar

Each chart form is licensed to make exactly one kind of claim. Picking the form is picking the argument, so the mapping is fixed:

FormClaim it supports
LineChange over time. The only form that earns a time axis.
BarMagnitude comparison across categories.
Mirror barsTwo-sided composition, like call vs put open interest around a spot price.
HeatmapPairwise relationship, like a correlation matrix.
GaugePosition within a bounded regime, never an open-ended scale.
SparklineContext only. A sparkline is never evidence.

Titles state the finding as a sentence, computed from the data where possible, so the headline can never disagree with the chart. The subtitle is the metric plus its units. A source line appears on every chart, always. Series get direct labels at their endpoints rather than a legend the eye has to shuttle to and from.

02 · Registry

Formula registry

The dashboards print these beside their charts; this is the canonical list. Reproducibility is the brand: anyone with the named sources can rebuild every number below.

Risk Dial
Equal-weight mean of six 0-100 legs: VIX vs its 50d mean · VIX9D/VIX ratio · HY OAS 20d change · RSP/SPY 20d relative return · SPY put/call volume vs a 1.25 baseline · SPY−TLT 20d return spread
Needs at least 3 of 6 legs to print; otherwise it shows a degraded state, not a number.
Source: Yahoo Finance, FRED, CBOE
Net liquidity
WALCL − WTREGEN − RRPONTSYD, in $T, weekly, forward-filled
Source: FRED
Recession panel
Four checks: Sahm rule ≥ 0.50 · 2s10s < 0 · claims 4-wk avg > 1.10x its 6-mo low · NFCI > 0. Score 0-1 clear, 2 watch, 3-4 elevated.
Source: FRED
Surprise index
Per release type, z = (actual − forecast) / sigma of that type’s historical surprises, clamped to ±3, sign-flipped for unemployment-class releases, summed with an 84-day half-life decay
Source: Finnhub economic calendar
Max pain
The strike that minimizes total in-the-money payout across calls and puts at the front expiry
Source: CBOE delayed quotes
GEX
Naive sum of gamma × OI × 100 × spot² × 1%, calls positive, puts negative
Dealer positioning is assumed, not observed; treat the sign convention as a convention.
Source: CBOE delayed quotes
Breadth oscillator
McClellan-style: EMA19 − EMA39 of daily net 20-day highs across the curated universe
Source: Yahoo Finance candles
Story clustering
Headlines merge at token-set Jaccard ≥ 0.45 with a ticker-overlap boost; score = ln(1+sources) × sourceWeight × (1+velocity) × exp(−age/9h)
Source: Aggregated news wire
Seasonality
Mean calendar-month return plus hit rate over the full history
History, not prediction.
Source: Yahoo Finance
News velocity
GDELT 24-hour coverage volume for a query, refreshed on its 15-minute cycle
Source: GDELT

03 · Sources

Data sources & cadence

Everything on the site runs on free or keyless public data. The full bill of materials:

SourceWhat it feedsUpdate cadenceCost
Yahoo FinanceQuotes, candlesLive-30s to dailyFree
FREDMacro seriesDaily-weeklyFree key
U.S. TreasuryYield curvesDailyKeyless
Treasury FiscalDataAuctionsDailyKeyless
CBOE delayed quotesOptions chains30-min cacheKeyless
SEC EDGAR XBRLFundamentals, filingsPer filingKeyless + UA
CFTCCOT positioningWeeklyKeyless
FinnhubEarnings + econ calendarDailyFree key
NAAIMManager exposureWeeklyPublic page
The Motley FoolCall transcriptsPer callPublic pages, summarized with attribution
GDELTNews volume15-minKeyless
OpenRouter free modelsWrap + call briefsPer generationFree tier

04 · Honesty

Honesty rules

Visible degradation beats silent failure. When a source is down or a leg is missing, the chart says so in place of the number; nothing is interpolated to look healthy.

No invented numbers. Where a language model writes prose, its output is validated against a typed contract before it ships, and it never produces a figure that did not come from a named source above.

Sources are chosen for durability, not convenience. Where a series has no dependable open feed, the panel that would use it degrades to a calm, related read rather than a broken widget, and nothing on the page is fabricated to fill a gap.

Everything is reproducible from the formulas on this page. If a number here cannot be rebuilt from the registry and the sources table, that is a bug.