← Stage Two Research

Tech Sector Setup Score

September 12, 2026 · QQQ at $709 (2026-09-10) · 3-month forward setup

Factor agreement: diversified credit and conditions are calm, so the contrarian read isn't fighting a systemic selloff. This flips, and dampens the score, if credit blows out.
Setup score66/100MODEST TAILWIND
headwindneutraltailwind

A mild contrarian tailwind — some fear/weakness in the tape. A probability tilt, not a forecast.

Beats always-long QQQ?
BARELY
Over 2006-2026, the tailwind band (score 60+) returned +5% over the next 3 months vs +4.2% for simply holding QQQ — an edge of just +0.8pp per quarter, at the same ~73% hit rate. Real, positive, and small. The value is in the headwind end and in sizing, not in a market-beating long-only signal.

The factors — equal-weight mean reversion

Reversal (vs 6-month high)-5.0% below 6mo highGREEN · 15/20
Short-term reversal: at the 1-3 month horizon weakness tends to bounce and strength to fade — the opposite of long-run momentum. The deeper QQQ is below its recent high, the better the forward odds. (Replaced a trailing-momentum factor that backtested robustly negative at this horizon.)
Volatility (contrarian)VIX 17.8, 55th pct · VRP 84th pctGREEN · 13/20
Two mean-reverting vol reads, averaged: VIX percentile, plus the variance risk premium (implied minus realized variance) — which separates “vol is high because the world is scary” (bullish, a fear premium you're paid to sell) from “vol is high because realized vol is high” (no signal). VRP carries the stronger, better-documented 1-3mo edge; the signal still lives in the tails.
Sentiment (contrarian)CBOE put/call 0.74, fearYELLOW · 11/20
Contrarian tail signal: extreme fear precedes gains, euphoria precedes mediocrity. Uses the CBOE put/call ratio (AAII's survey is bot-blocked server-side). Noisy in the middle, so only the extremes move the score.

Risk context — informs the guard, doesn't drive the score

VIX term structure (VIX / VIX3M)0.90 — contango (calm)GREEN
Not scored — used as a confirmation check. When the curve is in contango (normal), a lone “extreme fear” put/call reading is treated as hedging noise, not panic, and its weight is cut. Real panic inverts this curve.
HY credit spread (risk gauge)change -1bp/mo, calmYELLOW
Not scored — it sign-flipped between eras in testing, so it's unreliable for timing. But it's the best read on whether a selloff is systemic: when credit is blowing out, the contrarian score is dampened (don't buy a credit-driven bear).
Financial conditions (ANFCI)-0.59, looser than averageGREEN
Not scored (also era-dependent). Pairs with credit in the crisis guard — broad tightening alongside blowing-out credit is the signal that a dip is dangerous, not a buy.
Fed net liquidity (tilt, capped ±5)+62bn over 4 weeks — addingGREEN · +1 tilt
A small capped tilt, never a driver. Balance sheet minus reverse repo minus the Treasury account — the fast weekly liquidity measure used across the other tools.
How the score works (and why it's mean-reversion, not momentum)

Three contrarian factors — drawdown from the 6-month high; a volatility read that averages VIX percentile with the variance risk premium (implied minus realized variance, the better-documented vol signal); and the CBOE put/call ratio — each z-scored against its own history, averaged, and mapped to 0-100 through the normal CDF (50 = neutral). Put/call is confirmation-gated: a lone fear reading with every other gauge calm (and the VIX term structure in contango) gets its weight cut, so one noisy factor can't push the score toward a fire by itself. High score = fear and weakness are extreme (historically a better entry); low = complacent and extended. It resolves on the 3-month (63-day) forward return only.

Why contrarian: a leakage-free walk-forward of an earlier trend-and-conditions design showed no out-of-sample edge (composite IC ≈ −0.11). Testing factor candidates across sub-periods and a second asset (SPY) found that at 1-3 months equity returns mean-revert rather than trend — the momentum factor was robustly negative, while reversal and VIX-contrarian were robustly positive (≈ +0.07 to +0.13). So momentum was dropped, and credit + financial conditions — which sign-flipped between eras and aren't reliable for timing — moved to the crisis guard, where they dampen the score in a genuine credit blowout (the one regime where buying the dip fails).

Deliberately excluded: the “rising real yields crush tech” story (mostly a 2020-2022 artifact), valuation spreads (multi-year signal, noise at 1-3 months), and ML ensembles over paid features. Run scripts/validate_tech.py for the shipped composite and scripts/research_tech_v3.py for the VRP / term- structure / confirmation-gate / 2000-2002 / crisis-guard evidence.

Track record — every fire, scored vs the base rate

No fires logged yet (a fire = score 75+ for three consecutive days). Each will be auto-scored — but not against the naive “did QQQ rise?” test. QQQ rose over any given 3-month window 73% of the time historically, so a coin-flip firing at random dates would post a ~73% “hit rate” and mean nothing. Every fire here will display its hit rate against that 73% base rate and its average forward return versus always-long QQQ over matched windows. Excess over the base rate is the only number that counts.

Read this before acting

Tech timing at 1-3 months is near the edge of what's forecastable. The walk-forward IC is ≈ +0.13 (≈ +0.16 since adding the variance risk premium) — a real but small edge, not statistically distinguishable from zero at this horizon (≈4 independent 3-month bets a year). The score is a probability tilt, not a forecast: read an 85 as “odds favor tech,” not “tech will rise.”

The 2000-2002 test (the honest one): we used to call the dot-com bear untestable. It isn't — QQQ and the VIX both run back that far. Replayed through 2000-2002, “buy fear” signals (score 60+) averaged −5.1% over the next 3 months (8 of 22 up) — a wood-chipper, exactly as you'd expect from buying every dip in a secular bear. And the crisis guard fired on only 4 of those 22.

So here's the real failure mode: the guard works for what it was built for — over 2006-2026 it fired in ~6% of months, and buy-fear entries during those windows returned ~0% over 3 months vs +5.8% otherwise. But it keys on credit and financial conditions, which blow out in 2008-style crises and stay calm in valuation-driven bears. So it's largely blind to a 2000-style grind. We tested a 200-day-trend filter as a third trigger and rejected it — the same rule that dampens 2000-2002 would also have blocked the 2008 and 2020 bottoms, the best entries in the sample. Net: don't fight a credit blowout on the score alone, and don't buy-the-dip on the score alone when the whole tape is a slow bleed below a falling long-term trend.