v4: Market Stress Overhaul — Why $4,700 Gold Was Scoring Zero

Three of four market signals were scoring zero stress during historically extreme conditions. Gold at $4,700, oil at $101, and Treasury yields at 4.45% all produced flat readings because the formulas only measured rate-of-change, not absolute level. This post explains the bug and the fix.

A meter that shows low stress during objectively extreme market conditions is worse than no meter at all. After deploying the market signals layer in v2, we noticed something wrong: despite gold trading near all-time highs, oil above $100 a barrel, and Treasury yields at levels not seen since before 2008, the market stress scores for all three were reading 0.0.

The root cause

All three signals — Gold, WTI Oil, and 10-Year Treasury — were measuring only rate-of-change: how much the price moved relative to a recent baseline. If a market has been elevated for weeks, the 7-day change is small even though the absolute level is historically alarming. The formula treated a flat week at $4,700 gold the same as a flat week at $1,800 gold.

VIX was the exception. Because VIX is itself a volatility measure — not a price — the absolute number already encodes how fearful the market is. A VIX of 35 means elevated fear whether it got there fast or slow. The other three signals do not have that property.

The fix: blend absolute level with rate-of-change

Each affected signal now uses a 60/40 blend: 60% of the stress score comes from where the price sits within a historically calibrated range, and 40% comes from the rate of recent change. A sustained high price registers stress even if it has been stable for a month. A sudden spike adds to that baseline.

SignalLevel anchorsRate-of-change capOld stress (today)New stress (today)
Gold (XAU/USD)$1,800 normal → $5,000 crisis5% above 30d avg = 100.05.4
WTI Oil (CL=F)$60 normal → $120 crisis10% weekly move = 100.04.3
10Y Treasury (^TNX)2% normal → 6% fiscal crisis50bps weekly move = 100.04.3

Gold: $1,800 → $5,000

Gold spent most of the decade between 2012 and 2020 in the $1,200–$1,800 range. The surge above $2,000 in 2020 was driven by COVID-era uncertainty. The current level near $4,700 reflects a sustained multi-year flight to safety that has no precedent in the modern era. The $1,800 lower anchor represents pre-crisis normal; $5,000 represents a plausible crisis ceiling. At $4,674 today, the level stress component alone registers 9.0/10. Blended with a near-flat 30-day deviation, the combined stress is 5.4.

stress = clamp(price, $1800, $5000) × 0.6 + clamp(% above 30d avg, 0%, 5%) × 0.4

WTI Oil: $60 → $120

Oil above $100 has historically coincided with geopolitical crises, supply shocks, and inflationary periods — the 2008 peak, the 2022 Russia-Ukraine supply disruption. $60 represents a low-tension equilibrium; $120 represents a supply shock ceiling. At $101 today, the level stress is 6.8. Blended with a small weekly change, the combined stress is 4.3.

stress = clamp(price, $60, $120) × 0.6 + clamp(|7d % change|, 0%, 10%) × 0.4

10-Year Treasury: 2% → 6%

Treasury yields are more contextual than commodity prices — high yields can reflect growth as much as risk. However, yields above 5% create genuine fiscal stress: the US government's interest payments become a dominant budget line, refinancing risk rises, and mortgage markets seize. The 2% lower anchor represents the near-zero rate environment of 2010–2021; 6% represents a threshold that would trigger a debt sustainability crisis. At 4.45% today, the level stress contributes 3.7. With a near-flat weekly change, combined stress is 4.3.

stress = clamp(yield, 2%, 6%) × 0.6 + clamp(|7d change|, 0bps, 50bps) × 0.4

Effect on the market score

SignalWeightOld stressNew stressContribution beforeContribution after
WTI Oil35%0.04.30.001.51
VIX30%1.51.50.450.45
Treasury20%0.04.30.000.86
Gold15%0.05.40.000.81
Market score0.773.62

The overall market score moved from 0.77 to 3.62 — and because the market layer contributes 40% to the final meter, the doomsday meter itself rose accordingly. The news layer (60% weight) continues to drive the majority of the signal; the market layer now correctly reflects the macro environment it was designed to capture.

What did not change

VIX scoring is unchanged — its absolute level already encodes fear correctly, so no fix was needed. The 60/40 split between news and market layers is unchanged. The weights between the four market signals (WTI 35%, VIX 30%, Treasury 20%, Gold 15%) are unchanged. This is a calibration fix, not a structural change.