How this works: We track daily prices for SPY, QQQ and IWM and ask a simple question
at multiple time horizons (roughly 2 weeks, 1 month, 2 months and 3 months): is the market
above or below its moving average, and by how many "volatility units"? Each horizon acts like
a trigger — when price crosses below the average, that trigger flips to "sell". The
triggers are weighted and combined into a single positioning signal.
CTAs don't trade instantly. When triggers fire, funds unwind over roughly three weeks, and
they rebuild even more slowly (about a month to re-enter after a recovery). We model that
execution lag explicitly. During extreme volatility spikes (like March 2020), funds also
cut overall leverage because markets are harder to trade in — so forced selling is
naturally capped. In calmer selloffs (like 2025–26), they can execute fully.
The dollar scale is calibrated against the pre-2023 portion of a published reference chart.
The stress floor (−$53bn) comes from that chart's stated range. No parameters are
fitted to specific crash events — the same rules run across all 12 years of data.
Reading the chart: positive = CTAs are estimated net-long US equities. Negative =
net-short. The dashed −$37bn line marks the reference chart's "low positioning"
threshold. Post-2022 values are a reference comparison, not an out-of-sample test.
What this isn't: This is not Goldman Sachs data. It's an independent public-data
reconstruction inspired by their published charts. We don't know their exact model, AUM
assumptions or execution rules. This is our best transparent approximation using only
public market prices.
Data:
model output (JSON) ·
signal diagnostics (CSV) ·
reference target (CSV)